mirror of
https://github.com/django/django.git
synced 2025-08-02 18:13:02 +00:00
Added accessibility guidelines for contributors.
This commit is contained in:
parent
1ecf6889ca
commit
5527df9192
6 changed files with 183 additions and 0 deletions
171
docs/internals/contributing/accessibility.txt
Normal file
171
docs/internals/contributing/accessibility.txt
Normal file
|
@ -0,0 +1,171 @@
|
|||
=============
|
||||
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:
|
||||
|
||||
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.
|
||||
|
||||
.. _Web Content Accessibility Guidelines: https://www.w3.org/TR/WCAG22/
|
||||
.. _AA-level guidelines: https://www.w3.org/WAI/WCAG22/quickref/?currentsidebar=%23col_overview&levels=aaa
|
||||
.. _AAA-level guidelines: https://www.w3.org/WAI/WCAG22/quickref/?currentsidebar=%23col_overview&levels=a%2Caa
|
||||
.. _WCAG 3.0: https://www.w3.org/TR/wcag-3.0/
|
||||
.. _WCAG 3.0: https://www.w3.org/TR/wcag-3.0/
|
||||
.. _Authoring Tool Accessibility Guidelines: https://www.w3.org/TR/ATAG20/
|
||||
.. _The A11Y Project: https://www.a11yproject.com/
|
||||
|
||||
.. _accessibility-support-targets:
|
||||
|
||||
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`_.
|
||||
|
||||
.. _for everyone: https://en.wikipedia.org/wiki/Curb_cut_effect
|
||||
|
||||
.. _accessibility-testing-baseline:
|
||||
|
||||
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 :ref:`screenshot tests
|
||||
<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.
|
||||
|
||||
.. _assistive-technologies:
|
||||
|
||||
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
|
||||
|
||||
.. _Accessibility Insights: https://accessibilityinsights.io/
|
||||
.. _Axe: https://github.com/dequelabs/axe-core
|
||||
.. _NVDA: https://www.nvaccess.org/
|
||||
.. _Narrator: https://support.microsoft.com/en-us/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1
|
||||
.. _VoiceOver: https://support.apple.com/en-gb/guide/voiceover-guide/welcome/web
|
||||
.. _TalBack: https://support.google.com/accessibility/android/answer/6283677
|
||||
.. _Contrast themes: https://support.microsoft.com/en-us/windows/change-color-contrast-in-windows-fedc744c-90ac-69df-aed5-c8a90125e696
|
||||
.. _JAWS: https://www.freedomscientific.com/products/software/jaws/
|
||||
.. _Dragon: https://www.nuance.com/en-gb/dragon.html
|
||||
.. _Orca: https://help.gnome.org/users/orca/stable/
|
||||
|
||||
.. _accessibility-known-issues-how-to-help:
|
||||
|
||||
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`_.
|
||||
|
||||
.. _Django Discord server: https://chat.djangoproject.com
|
||||
.. _Accessibility Django forum topic: https://forum.djangoproject.com/c/internals/accessibility/26
|
||||
.. _Accessibility issues on the ticket tracker: https://code.djangoproject.com/query?status=!closed&keywords=~accessibility
|
||||
.. _django accessibility improvements: https://github.com/orgs/django/projects/7
|
||||
.. _Accessibility team: https://www.djangoproject.com/foundation/teams/#accessibility-team
|
|
@ -82,6 +82,9 @@ guidelines to follow:
|
|||
* Make sure to set the UI/UX flag on the ticket so interested parties can
|
||||
find your ticket.
|
||||
|
||||
* If the issue relates to accessibility, please link to the relevant
|
||||
:ref:`accessibility standard <accessibility-standards>` if applicable.
|
||||
|
||||
.. _requesting-features:
|
||||
|
||||
Requesting features
|
||||
|
|
|
@ -40,6 +40,7 @@ It's important to understand how we work and the conventions we adopt.
|
|||
|
||||
coding-style
|
||||
javascript
|
||||
../accessibility
|
||||
../committing-code
|
||||
|
||||
We maintain a curated list of small issues suited to first-time or less
|
||||
|
|
|
@ -413,6 +413,8 @@ All code changes
|
|||
* If the change is backwards incompatible in any way, is there a note
|
||||
in the release notes (``docs/releases/A.B.txt``)?
|
||||
* Is Django's test suite passing?
|
||||
* If the change affects the Django admin or rendered HTML output, has
|
||||
:ref:`accessibility testing <accessibility-testing-baseline>` been done?
|
||||
|
||||
All tickets
|
||||
-----------
|
||||
|
|
|
@ -271,6 +271,11 @@ faster and more stable. Add the ``--headless`` option to enable this mode.
|
|||
|
||||
.. _selenium.webdriver: https://github.com/SeleniumHQ/selenium/tree/trunk/py/selenium/webdriver
|
||||
|
||||
.. _screenshot-tests:
|
||||
|
||||
Screenshot tests
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
For testing changes to the admin UI, the selenium tests can be run with the
|
||||
``--screenshots`` option enabled. Screenshots will be saved to the
|
||||
``tests/screenshots/`` directory.
|
||||
|
|
|
@ -509,6 +509,7 @@ titlecase
|
|||
tokenized
|
||||
toolkits
|
||||
toolset
|
||||
tooltip
|
||||
trac
|
||||
tracebacks
|
||||
Transifex
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue