In order to adhere to the manifesto and at the same time be useful to developers and content creators, we evaluate all rules according to strict normative WCAG 2 interpretation. We also pay very strong attention to the normative portion of WCAG 2 known as accessibility supported.
Boiled-down, accessibility supported means that in order for a technique to be valid, it must work on all viable platforms for all assitive technology that are widely used and freely available (paraphrased).
We currently test the following AT combinations for support
- VoiceOver and Safari on OS X
- VoiceOver and Safari on iOS
- JAWS and IE on Windows
- NVDA and Firefox on Windows
- Talkback and Chrome on Android
- Dragon and Firefox on Windows
For some technologies, like ARIA, we have a dilemma in that the spec is approved before supported and we have to weigh a balance between something that conforms to the spec, but does not yet work. When we do this, we favor the accessibility supported principle over the spec but we temper this with the impact of using an unsupported feature. Here is how we do this:
- If the feature's use is supported by all platforms: allow, else
- If the feature's use does not have a negative impact on accessibility: allow, else
- If we can detect a fallback: allow, else
- disallow the feature's use until it is supported
In addition, we disallow invalid attributes starting with aria-
and invalid attribute values as these are highly likely to have a negative impact on accessibility because of the scenarios under which these are likely to occur (this is so we can act as a useful linting tool for developers).
We recognize that there are best practices that significantly improve the usability of application, even though they are not strictly required in order to conform with WCAG 2. We develop the best practice rules to help content developers to identify these and adhere to them.
We recognize that this topic is somewhat controvertial and the rules we have represent Deque's opinion on what constitutes a best practice.