#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.

Reply via email to