Modal with focus handling and aria-hidden="..."

The button will launch a modal dialog.

Uses aria-hidden="true" on the underlying page when the modal is open, to avoid assistive technology users from straying out of the modal (e.g. using heading navigation). We still need to manage focus handling ourselves though (as aria-hidden="true" doesn't prevent focusable elements from being focusabl, it only hides things from the accessibility tree).