- From: Benjamin Hawkes-Lewis <bhawkeslewis@googlemail.com>
- Date: Wed, 02 Sep 2009 18:45:25 +0100
- To: HTMLWG WG <public-html@w3.org>, W3C WAI-XTECH <wai-xtech@w3.org>
On 02/09/2009 15:29, Smylers wrote: > Jim Jewett writes: [snip] >> Why can't lynx or firefox use the aria-* attributes? > > Aria has not been designed with non-accessibility uses in mind. What's > best for accessibility software may not be best for other purposes. It's true that helping people with disabilities is the practical goal of ARIA. It doesn't follow from /this/ that user agents like Lynx or Firefox cannot use aria-* attributes to do more than expose them to the DOM and accessibility APIs. Not all people with disabilities use assistive technologies; user agents have accessibility requirements that go beyond exposing APIs (http://www.w3.org/TR/WAI-USERAGENT/). For example, all popular browsers allow users to customize text color, font, and size to increase legibility and all popular browsers support keyboard navigation and operation. The stated goals of the ARIA editor's draft (http://www.w3.org/WAI/PF/aria/) are: "supporting device independence for new devices such as telephones, PDAs, and televisions; improving the accessibility of dynamic content generated by scripts; and providing for interoperability with assistive technology." ARIA imposes some requirements on the functionality provided by host languages (like HTML). These requirements definitely include features that /any/ user agent can use when providing a user interface. Specifically (§6.1.3): "An implementing host language MUST provide support for the author to make arbitrary elements focusable, such as the 'tabindex' attribute in HTML." This appears to be how ARIA helps televisions. ;) For conforming user agents, ARIA states: (§7.1): "WAI-ARIA processing by the user agent MUST NOT interfere with the normal operation of the built-in features of the host language. "Scripted changes in the DOM and style rules which change the presentation of the content based on selectors sensitive to WAI-ARIA markup MUST be considered as part of normal operation. On the other hand, the mapping to accessibility APIs MUST be considered, in applying this rule, to be above and beyond normal operation. The WAI-ARIA processing MAY alter the mapping of the host language features into an accessibility API, but the mapping to the API MUST not alter the DOM." And (§8.2): "User agents SHOULD expose role, state, and property information provided by the author to accessibility APIs available in their operating system." For conforming assistive technologies, ARIA states (6.1.3): "If the host language incorporates WAI-ARIA support and there is a conflict between a host language feature and an WAI-ARIA feature, assistive technologies SHOULD assign preference to the WAI-ARIA feature. Also, if the user agent supports an accessibility API, user agents SHOULD convey the WAI-ARIA metadata to the accessibility API." Note ARIA does not require or prohibit user agents providing UI based on ARIA where doing so does not "interfere with the normal operation of the built-in features of the host language". A lot hinges on how you interpret this phrase, but the draft doesn't give much help. The descriptions of some WAI-ARIA features seem to envisage user agents making direct use of them. The description of "aria-invalid" says (§5.4): "User agents SHOULD inform the user of the error. … User agents MAY refuse to submit the form as long as there is an element for which aria-invalid is true." The description of "aria-flowto" says (§5.4): "In the case of one or more IDREFS, user agents or assistive technologies SHOULD give a user the option of navigating to any of the elements targeted." The description of "aria-live" says (§5.4): "Politeness levels are essentially an ordering mechanism for updates and serve as a strong suggestion to user agents or assistive technologies." For the "assertive" value, "This information has the highest priority and user agents SHOULD notify the user immediately." A lot also hinges on how you interpret the distinction between "user agent" and "assistive technology". The draft does not provide normative definition of these terms, only an informative glossary (§9.2). User agent is defined as: "Any software that retrieves and renders web content for users, such as web browsers, media players, plug-ins, and other programs including assistive technologies." Accessibility technology has a much longer definition that doesn't make it much clearer which conformance requirements apply to which software: "Hardware and/or software that acts as a user agent, or along with a mainstream user agent, to meet the interface requirements of users with disabilities beyond those offered by the mainstream user agents. "Services provided by assistive technologies include alternative presentations (e.g., synthesized speech or magnified content), alternative input methods (e.g., speech recognition), additional navigation or orientation mechanisms, and content transformations (e.g., to make tables more accessible). "Assistive technologies often communicate with mainstream user agents by using and monitoring accessibility APIs. "The distinction between mainstream user agents and assistive technologies is not absolute. Many mainstream user agents provide some features to assist individuals with disabilities. The basic difference is that mainstream user agents target broad and diverse audiences that usually include people with and without disabilities, assistive technologies target users with specific disabilities. The assistance provided by assistive technologies is more specific and appropriate to the needs of its target users. "Examples of assistive technologies that is important in the context of this document include the following: screen magnifiers, which are used to to enlarge and improve the visual readability of rendered text and images; screen readers, which are most-often used to convey information through synthesized speech, sound iconography, or Braille; text-to-speech software, which is used to convert text into synthetic speech; speech recognition software, which is used to allow spoken control and dictation; alternate keyboards (including head pointers, single switches, and sip/puff devices), which are used to simulate the keyboard; alternate pointing devices, which are used to simulate mouse pointing and clicking." I /think/ it's safe to say that PFWG intend that while mainstream user agents like Opera could provide a shortcut key for HTML5's "nav" element (for example), they should not provide the same shortcut key for "div role='navigation'". The advantage of this approach is that divitis-based Ajax frameworks like Dojo can incorporate ARIA to provide support to assistive technology that uses system accessibility APIs without any side-effects for other users and that ARIA can be used as a bridge while support for HTML5 is still developing. The disadvantage of this approach is that ARIA cannot serve as a general solution for making arbitrary markup "accessible", and that, in so far as other markup can be made "accessible" but still requires ARIA to expose the correct information to system accessibility APIs, it will require authors to encode the same information twice. However, I don't believe this intention of PFWG is clearly reflected in conformance criteria in the current draft. Since "interfere with normal operation of the built-in features of the host language" is vague and "assistive technology" is not normatively defined, it's not clear to me on what basis one could say Opera (or Lynx!) would be non-conforming if they exposed the same shortcuts for "nav" and "div role='navigation'". -- Benjamin Hawkes-Lewis
Received on Wednesday, 2 September 2009 17:46:03 UTC