Interpreting WAI-ARIA Flashcards
What are the main goals of WAI-ARIA?
- expanding accessibility information that may be supplied by the author
- requiring full keyboard support that may be implemented in a device-independent way, where supported
- improving accessibility of dynamic content generated by scripts
- providing interoperability with assistive technologies
What are the two main aspects of roles covered in WAI-ARIA?
User interface functionality and structural relationships.
What is meant by semantics and why is it important in relation to accessibility?
Semantics is the science of meaning. It is important that web pages and UI components are created with semantics in mind, so that UAs and ATs can interpret and convey their meaning, regardless of how they are being presented.
How do roles differ from properties and states?
Roles are element types, providing information for normal processing, and will not change with user actions.
States and properties describe interaction, and can be dynamically changed and updated by UAs and OSs.
What is meant by an accessibility API?
It is the information and controls exposed by the UA to the operating system and assistive technologies, providing them access to interpret and manipulate the web page.
_T/F:
WAI-ARIA can be used interchangeably with the native language’s semantics.
F. While the statement is technically true, it is not the intention of WAI-ARIA to be used as a replacement for native technologies. When the host language provides a feature that provides equivalent accessibility to the WAI-ARIA feature, use the language feature. It is not appropriate to create objects with style and script when the host language provides a semantic element type for that type of object.
Who are the target audiences for WAI-ARIA?
- UAs
- ATs
- Authors who create content
- Authoring tools that help authors create conforming content
- Conformance checkers
Each conformance requirement indicates the audience to which it applies.
T/F:
The WAI-ARIA specification neither requires nor forbids user agents from enhancing native presentation and interaction behaviours on the basis of WAI-ARIA markup.
T. UAs are encouraged to maximize their usefulness to users with/without disabilities and may expose landmarks or enhance styling.
T/F:
As host languages evolve to provide semantics to objects and features that can currently only be declared with WAI-ARIA, authors should refactor and remove instances of WAI-ARIA in their codebase.
F. Authors are encouraged to use native host language features when they become available, but are not required to change existing code. UAs and host languages are encouraged to continue supporting WAI-ARIA to support legacy code.
How are conflict in roles, states, and properties resolved in cases where the host language and WAI-ARIA do not match?
Host language states and properties will take precedence over WAI-ARIA to avoid conflicts, BUT WAI-ARIA roles will take precedence over implicit host language roles.
What are managed and unmanaged states?
Managed states are those handled by the UA – e.g. such as focus, checked, selected – and often have CSS pseudo-classes associated with them.
Unmanaged states are those that the UA does not control or that the author can override, and the author must implement a mechanism to update them.
What is a “managing container” or “composite” widget, and how does it accept and manage focus?
A container or composite widget is one that handles multiple related elements that work together to convey information or handle a user interaction.
The widget itself should receive and lose focus via the main navigation key (e.g. tab
on desktop); additional interactions and focus within the widget should be handled by additional keys (e.g. arrows). When the container loses focus and subsequently regains it, the focus within should be returned to the last focused element within it (with some exceptions, e.g. menu bar).
What are some examples of composite widget roles within which authors are required to manage focus?
combobox
grid
listbox
menu
menubar
radiogroup
tree
treegrid
tablist
What characteristics are used to define roles?
- Abstract Roles (boolean)
- Required States and Properties
- Supported States and Properties
- Inherited States and Properties
- Required Owned Elements
- Required Context Role
- Accessible Name Calculation
- Presentational Children (boolean)
- Implicit Value for Role
*T/F:
A widget with a role that has required owned elements can be left empty if those elements are missing because they are being loaded by a script.
F. While the the required owned elements are missing, the widget MUST be marked with aria-busy="true"
.