> For the complete documentation index, see [llms.txt](https://docs.nickarce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nickarce.com/etch-drawer/customization/accessibility.md).

# Accessibility

## What's built in

* Drawers receive `role="dialog"` (modal) or `role="region"` (passive) with `aria-modal="true"`
* The first heading inside the drawer is linked via `aria-labelledby`
* A live region announces "Dialog opened" / "Dialog closed" (or "Notification" for passive drawers) to screen readers
* Focus moves to the first focusable element inside the drawer on open — passive drawers skip focus management
* Tab and Shift+Tab are trapped within the drawer to prevent focus from escaping behind the overlay
* Focus returns to the trigger element when the drawer is dismissed
* All drawer content is hidden from screen readers when `data-state` is `closed`
* Overlays are marked `aria-hidden="true"` — they are decorative
* Drag handles receive a descriptive `aria-label`
* Snap navigation buttons (`data-snap-to`) get `aria-disabled="true"` when there's no further snap point in that direction, so the dead end is announced rather than silently doing nothing — see [Core Behavior — Snap navigation buttons](broken://pages/51fd42123935a066b3efafd4ce76da2d7a72e6a0#snap-navigation-buttons)

## Passive mode differences

Passive drawers use `role="region"` instead of `role="dialog"` and do not trap focus or lock body scroll, since they are non-modal notifications. See [Core Behavior — Passive mode](broken://pages/51fd42123935a066b3efafd4ce76da2d7a72e6a0#passive-mode) for more detail.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nickarce.com/etch-drawer/customization/accessibility.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
