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