Breadcrumb
Techniques to Improve Website Accessibility
Summary
This list enumerates common techniques for creating accessible websites and applications.
Users can traverse and interact with a page or view using only the keyboard
- Keyboard tab and arrow sequence reflects logical reading order
- Any element that exhibits a hover/click behavior exhibits the same behavior via focus/keypress
- Any element that exhibits a hover/click style exhibits the same style via focus/keypress
- Elements display a visual indicator on focus and on hover
- Keyboard commands in the web application do not conflict with browser or OS commands
- Modal dialogs, popups, and overlays capture keyboard focus until dismissed by user
Users can remain oriented within a page or view
- All content on all pages is contained within a named landmark region
- All landmark regions have unique accessible names
- Landmark regions observe rules and restrictions for level and nesting
- Regions created by web editors have unique accessible names
- All object IDs are unique in a page
Unique, descriptive text labels are applied to non-text elements
- Landmarks, Sections (aria-label, aria-labelledby)
- Images/Area (ALT text, aria-label, aria-labelledby, aria presentation role)
- Form controls (label, aria-label, aria-labelledby, fieldset/legend)
- Buttons (inner text, HTML label, aria-label, aria-labelledby)
- Links (inner text, aria-label, aria-labelledby)
- Widgets (aria-label, aria-labelledby)
- Media players and controls (aria-label, aria-labelledby)
Document structure is standard and intuitive
- All pages and views include a unique title which is exposed on load
- All pages and views use appropriate, well-labeled landmarks and sectioning
- All pages and views contain a level 1 heading
- Headings are nested and increase by 1 level; no heading levels are skipped
- Headings are used to introduce or identify topics and regions, not to compose blocks of text
- Headings are not used to provide styling or spacing, but reflect the natural outline of document
Native HTML5 elements are used wherever possible
- HTML5 elements and attributes are use in conformance with HTML5 standards
- HTML5 is used for sectioning and container elements
- ARIA role attribute is not provided when it duplicates the role of the HTML5 tag
- If ARIA role is applied, all attributes of that role are managed in script
Color and styles
- Foreground and background colors are defined in tandem
- Foreground/background color combinations conform to applicable contrast levels
- Hyperlinks are visually distinguishable from surrounding text in two ways (e.g., color, underline)
- Styles are provided using CSS, and not via HTML tags like <b> or <i>
Documents remain legible when magnified
- Content reflows without horizontal scrolling (up to 400%)
- Use relative units (e.g., em, %) for all text
- Use relative units (e.g., em, %) for all interface elements
- Magnification does not cause content to be obscured or blocked
- Magnification does not cause horizontal scrolling
Dynamic and live content
- Alerts, notifications, updates, and similar live content are exposed to the user
- User is returned to an appropriate context after addressing alerts, notifications, updates, and similar live content
- Dynamic content includes instructions for any calls to action
- Dynamic modals, dialogs, and other overlays can be dismissed using ESC or close button
Online media
- All recorded media is accompanied by an accurate transcript
- Recorded video is accompanied by synchronized captions
- Recorded videos are accompanied by audio description of onscreen activity
- Media players are accessible; components are keyboard and screen reader operable
User control and autonomy
- Users submit forms and commit changes via accessible interface elements
- Users can opt-in to auditory and motion experiences; media does not autoplay
- Users can extend time limits whenever possible