#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 django-updates+unsubscr...@googlegroups.com.
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