Hi django-developers,

This is a long-overdue follow up to DEP 11 
<https://github.com/django/deps/blob/main/accepted/0011-accessibility-team.rst> 
and the creation of Django’s accessibility team. As part of implementing 
what this DEP outlines, we need to discuss what accessibility standards 
should apply to Django, among other things. In my opinion this is both a 
matter of deciding what pre-existing standards / guidelines would be 
relevant in theory, but also how to make sure whichever ones we choose are 
achievable to follow in practice. We need to find some consensus on what 
Django as a project should aim for, so our team and all contributors can 
take it into consideration, and in particular so we can document what we 
want to commit to as a reference for accessibility work.

Here are accessibility team responsibilities 
<https://github.com/django/deps/blob/main/accepted/0011-accessibility-team.rst#responsibilities>
 
I would like to bring up for discussion in particular:

   - *Deciding on any relevant accessibility guidelines to follow, such as 
   WCAG, and at which conformance level.*
   - *Coordinating regular manual accessibility audits on all relevant 
   projects.*
   - *Writing and maintaining documentation relating to accessibility, such 
   as a statement of commitment to accessibility issues, and contribution 
   guidelines.*

Now I’ll try to outline what I’d suggest for each area, which people here 
are very welcome to disagree with as relevant. 

Accessibility guidelines

In my opinion, the most important standard for *_sites built with Django_* 
is WCAG 2.1, AA level. Anything resulting in AA level issues should be 
considered as a bug. Wherever possible, we should also strive to not get in 
the way of sites built with Django aiming for AAA level compliance.

For the Django admin, I would recommend the same target of WCAG 2.1 AA 
level as a baseline, aiming for AAA wherever possible. For example, the 
link text issue discussed in Default change password UX: area for 
improvements 
<https://groups.google.com/g/django-developers/c/8_lJUFRv2V4/m/O2cZAqpwAQAJ> is 
a case where I’d expect us to want to follow WCAG SC 2.4.9: Link Purpose 
(Link Only) 
<https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only.html>, 
even though it’s level AAA.

This distinction between "sites built with Django" and the "Django admin" 
highlights an important point, which is that for lots of sites the Django 
admin would be what accessibility standards call an authoring tool. There 
is a separate standard for authoring tools that builds upon WCAG 2.1: ATAG 
2.0. I think we should also explicitly aim for compliance with ATAG 2.0 
wherever possible, as it has a lot of useful guidelines we could follow for 
the Django admin. For Django itself, there might be very little to do to 
implement those guidelines, but for the wider ecosystem of CMS-like 
features in Django it would make a clear difference if Django was clearly 
defined as an authoring tool. WCAG itself is a very thin baseline as 
standards go, so anything that goes beyond it is well worth considering in 
my opinion.

For everything else within the Django ecosystem – the documentation, the 
djangoproject.com website, the bug tracker, IRC, plain-text documentation, 
etc. – we should follow the exact same standard. I would also really like 
to see the same standard being explicitly recommended for consideration for 
third-party Django projects (similarly to Django projects wanting to 
provide the same level of browser and language support as Django itself, I 
imagine). This probably warrants a separate conversation but I would also 
recommend the Django Software Foundation explicitly mandating the same 
standard for any project or event it endorses.

It’s worth mentioning as well that the next version of WCAG, WCAG 2.2, is 
due to be released by the end of 2021. I’d recommend we don’t aim for 
support with WCAG 2.2 right now, but do so as soon as it’s released. In the 
meantime, we should also consider any WCAG 2.2-only guideline wherever 
reasonable (for example in audits, design of new features, etc.).

Contribution guidelines

Aiming for compliance with specific standards is good, but we shouldn’t 
expect Django contributors to be familiar with WCAG, or any other standard. 
I think it’s important we update the contribution guidelines to propose 
practical support targets:


   - *Which automated or semi-automated testing tools to use when testing 
   changes to Django*. My go-to is anything Axe 
<https://www.deque.com/axe/>-based, 
   as it’s ubiquitous, and has very few false positives. In particular with 
   the Accessibility Insights <https://accessibilityinsights.io/> browser 
   extension.
   - *Which assistive technologies should we explicitly strive to test 
   Django with, so contributors have clear guidance on how to test their 
   changes*. For example here are the testing guidelines for public sector 
   sites in the UK 
   
<https://www.gov.uk/service-manual/technology/testing-with-assistive-technologies>
   .
   - *Whether / how best for the accessibility team to be involved* with UX 
   or design changes in Django & other projects, or other changes that would 
   require accessibility considerations.

Manual audits

This would be very dependent on the above two points. Beyond this, it would 
be good to discuss what audit methodologies would be satisfactory (whole of 
the admin, sampling, what demo site to test, etc.) – and what would be the 
most useful on the reporting side.

Short-term actions

There are a couple more things I wanted to raise for others to feed back 
on, relevant to all of the above but that I think would make a bigger 
difference in the short term:


   - Currently I’m only able to test Django with VoiceOver on macOS, and as 
   such can’t test with a lot of other popular assistive technologies. There 
   is a SaaS called Assistiv Labs <https://assistivlabs.com/> that provides 
   VMs with pre-installed assistive technologies, with a free plan for 
   open-source projects. Could we ask them to sponsor Django? I imagine this 
   might be more of a question for the relevant DSF team(s) but wanted to see 
   what people thought here first. Note this isn’t specific to my situation – 
   assistive technologies are very segmented by operating system, so we would 
   need to find strategies to test across different ones one way or another.
   - There is an EU-funded research project on authoring tools’ 
   accessibility currently under way, We4Authors Cluster 
   <https://accessibilitycluster.com/>. I’m interested in filling out a survey 
   from this project <http://surveys.funkanu.se/s3/cluster-project-survey> as 
   a way to assess Django’s position with their early findings. I don’t think 
   this engages anyone in any way but thought it would be good to bring it up 
   nonetheless in case it raises any red flags.

---

How does all of this sound? Anything I missed that should be brought up at 
the same time? I appreciate this might be a lot of things to comment on 
over email – assuming there is some high-level agreement, it might be 
easier for people to review as PR(s) to the Django contributing docs, but 
thought I’d try here first.

Best regards,

Thibaud

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/9d60fd5a-56ea-4aa7-b5d8-0037515e3aa9n%40googlegroups.com.

Reply via email to