# Django 6.0.2 documentation

# Accessibility

The Django project is committed to ensuring that websites built with Django are usable by everyone, including people with disabilities. Django’s built-in components, such as the admin interface and default form rendering, should adhere to established accessibility standards and meet our own targets for supporting specific input devices and assistive technologies.

## Accessibility standards

We work to conform with the Web Content Accessibility Guidelines (WCAG), version 2.2, at the AA level. WCAG is the most established standard for web accessibility. AA-level guidelines are the most common legal compliance target worldwide.

We also aim to follow other best practices, such as:

- WCAG 2.2 AAA-level guidelines – stricter criteria that go beyond the AA level.

- The upcoming WCAG 3.0 guidelines – a new, evolving standard that aims to unify and improve upon previous versions of WCAG.

- Authoring Tool Accessibility Guidelines (ATAG) 2.0 – guidelines for software and services that are used to produce web content.

To learn more about accessibility without diving straight into standards, we recommend The A11Y Project, a community-driven effort to make digital accessibility easier.

## Support targets and testing

Beyond standards, we want to make sure Django actually works for people using a wide range of input devices and assistive technologies. This has benefits to make sure Django works better for everyone. The best way to do this effectively is to take accessibility considerations into account as part of designing features. If in doubt, consult with users who rely on assistive technologies or with accessibility experts. You can reach out to the Accessibility team via the Accessibility Django forum topic or via the `#accessibility` channel on the Django Discord server.

### Testing baseline

Design the UI with accessibility in mind, and the testing will only be needed as a final check. For more complex interfaces, confer with other contributors to decide on testing targets. Reach out to the Accessibility team for support and to coordinate testing.

Always test user interface changes with:

- Keyboard-only navigation. Common issues include:

  - An interactive element can’t be reached using the Tab or arrow keys.

  - An interactive element “traps” input focus and prevents navigating away.

  - An interactive element doesn’t give a visible indication when it has input focus.

  - The focus order is inconsistent with the logical order that’s communicated visually.

- The Accessibility Insights browser extension’s automated checks feature, or an equivalent tool with the Axe checker.

Where the UI changes could affect those modalities, also test with:

- Touch-only navigation. Common issues include:

  - A touch target (interactive element) is too small.

  - Hover-based based interaction which does not translate to touch, such as a hover only tooltip.

- 400% browser zoom. Common issues include:

  - Content is cut off or disappears when zoomed.

  - Content that does not inherently require a two-dimensional layout causes scrolling in both directions (vertical and horizontal). Two-dimensional scrolling is acceptable for content like images, maps, videos, and data tables, which require both dimensions to be usable.

- Forced-colors mode (for example Windows Contrast Themes). Note that this can be tested via the `"high_contrast"` mode in the screenshot tests. Common issues include:

  - Over-reliance on color for meaning, which is lost in forced-colors mode.

  - Use of `!important` or inline styles may break forced-colors mode.

### Recommended assistive technologies

Where the UI changes could affect assistive technologies, here are popular free options we recommend testing with.

For Windows:

- NVDA - recommended with Firefox ESR

- Narrator - recommended with Microsoft Edge

- Windows Magnifier

- Windows Speech Recognition

- Contrast themes

For macOS:

- VoiceOver - recommended with Safari

- macOS Zoom

- macOS Voice Control

For Linux:

- Orca - recommended with Firefox ESR

For mobile or tablet:

- VoiceOver on iOS, or TalkBack on Android

The following are popular licensed options. If you are a user of these, or can work with a user holding a license, also test against:

- JAWS on Windows

- Dragon on Windows

## Known issues and how to help

There are parts of Django that do not meet our accessibility targets. We actively work on fixing issues, both as part of ongoing maintenance and bigger overhauls. To learn about known issues, and get involved, see:

- `#accessibility` on the Django Discord server.

- The Accessibility Django forum topic.

- Accessibility issues on the ticket tracker.

- Our django accessibility improvements project board.

- The Accessibility team.