#33620: Accessibility in pipeline
-------------------------------------+-------------------------------------
Reporter: Sarah Abderemane | Owner: Tushar
Type: New feature | Status: assigned
Component: contrib.admin | Version: dev
Severity: Normal | Resolution:
Keywords: accessibility, ux, | Triage Stage: Accepted
ui, admin |
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 1
-------------------------------------+-------------------------------------
Comment (by Thibaud Colas):
Following up from
[https://github.com/django/django/pull/16372#issuecomment-1357132971
#16372#issuecomment-1357132971], particularly with another new approach
proposed by @Tushar in [https://github.com/django/django/pull/17074
#17074], here are the points of decision I would recommend making before
we proceed with coding, ordered based on how much I think they influence
one-another:
1. **Test outcome**: whether the accessibility checks will fail the build
if there are issues, or only provide a warning / reporting
2. **Test Output**: either pass/fail of specific checks, or JSON or HTML
report(s), or both, or something in-between
3. **Test suite**: reuse of the existing Selenium tests (like in
[https://github.com/django/django/pull/16372 #16372],
[https://github.com/django/django/pull/17074 #17074]), or something
separate altogether (like in [https://github.com/django/django/pull/16115
#16115]).
4. **Accessibility checker**: Axe, Pa11y (HTML Code Sniffer + Axe), IBM
Equal Access, Alfa, etc
5. **Configuration of the checks**: either "run all supported checks", or
opt-in / allow-list "run specific subset that pass", or opt-out /
disallow-list "run all minus the ones that fail".
---
The ideal scenario to me would be for previously-undetected accessibility
issues to fail the build, even if that means only running a subset of
possible accessibility checks in CI. With this in mind, I think the best
setup is:
1. Test outcome: fail the build
2. Test output: pass/fail of specific checks in the command line output
3. Test suite: reuse of the existing Selenium tests (for consistency, and
because we might as well)
4. Checker: Axe (most configurable, usable in lots of different scenarios)
5. Configuration: opt-out – run all checks where possible. Exclude
problematic elements or checks as needed, scenario-by-scenario
With this in mind, of the three attempts so far my preference is for
[https://github.com/django/django/pull/16372 #16372] with
[https://github.com/mozilla-services/axe-selenium-python axe-selenium-
python]. If we have concerns about its maintenance
([https://github.com/django/django/pull/16372#issuecomment-1343332628
#16372#issuecomment-1343332628], I’d say we should investigate the
specific concerns further and either re-implement the functionality (200
LOC) in django/django, or fork, or approach someone at Mozilla to
[https://github.com/mozilla-services/axe-selenium-python/issues/192
discuss maintenance]. cc @smithdc1 who raised this initially – and we also
discussed this together in Edinburgh.
I’m also interested in having more comprehensive automated reports of
Django’s accessibility, though
[https://github.com/thibaudcolas/django_admin_tests
thibaudcolas/django_admin_tests] has worked well enough so far that it
didn’t seem as pressing to me. If we wanted full reports as an "official"
implementation, I’d recommend proceeding with
[https://github.com/django/django/pull/16115 #16115]. Ideally towards the
goal of having a full-blown official demo site we could use to
troubleshoot those issues in a reliable way, rather than contributors
having to come up with their own test suite (cf.
[https://github.com/knyghty/django-admin-demo
knyghty/https://github.com/knyghty/django-admin-demo]).
--
Ticket URL: <https://code.djangoproject.com/ticket/33620#comment:14>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107018a07a21c1e-543bddf9-523b-4ea8-8067-cf2e05787067-000000%40eu-central-1.amazonses.com.