Dynamic Content (JavaScript, AJAX)
Note:
This section is currently undergoing revisions.
Topic | Technique | WCAG AA Requirement |
---|---|---|
Context Changes | Context Changes on Focus: The focus MUST be purposely moved or set (via JavaScript) onto the appropriate element when the user's action requires a change of context or location for effective keyboard or touch interaction. | Required WCAG 3.2.1 |
Context Changes on Input: When a user inputs information or interacts with a control, it MUST NOT result in a substantial change to the page, the spawning of a pop-up window, an additional change of keyboard focus, or any other change that could confuse or disorient the user unless the user is informed of the change ahead of time. | Required WCAG 3.2.2 |
|
Finding Added Content | Finding Added Content: Silence is bad. When screen reader users activate a feature (link, button, control, etc.), or when an important part of the content changes, they need to hear feedback. One of the basic challenges with dynamic content is to figure out the best way to tell screen reader users about the dynamic changes. | Required WCAG 1.3.2 |
Keyboard Focus Management During Interactions | Set Keyboard Focus: The focus MUST be purposely moved or set (via JavaScript) onto the appropriate element when the user's action requires a change of context or location for effective keyboard or touch interaction. | Required WCAG 2.4.3 |
No Lost Focus: The focus MUST NOT become lost or reset to the top of the page, except when loading or re-loading a page. | Required WCAG 2.4.3 |
|
Focus Target Has Text: When moving or setting focus, the destination element MUST contain discernible text (either standard text or programmatically associated text). | Required WCAG 1.3.1 |
|
Timers | Session Timeout – Timing Adjustable: If there is a session time limit, users MUST be warned before the session ends and MUST be given time to save their data and/or extend the session. | Required WCAG 2.2.1 |
Timers with Fixed Deadlines | ||
Auto Refresh/Reload Page: | ||
Auto Refresh/Reload Content Items or Sections | ||
Changes in State | Programmatic State Changes: When the state of an element changes (e.g. selected, expanded, inactive), the state MUST be programmatically changed via HTML or ARIA attributes, not just visually changed. | |
User Input and Feedback | Input: See the requirements for Form Inputs, Labels, and Instructions. | Required multiple |
Feedback: See the requirements for Form Validation and Feedback. | Required multiple |
|
Passive Changes to Content | On Focus: | |
On Hover: | ||
On Gesture: | ||
On Input: | ||
On Blur: | ||
On Scroll: | ||
On Device Orientation Change: | ||
Device Motion Activation: | ||
Device Spatial Orientation Detection: | ||
Notifications for AJAX Passive/Lazy Load: | ||
Placeholder Content for AJAX Passive/Lazy Load: | ||
Busy State During AJAX Passive/Lazy Load: | ||
Timed Changes | ||
User-Requested Changes to Content | On Click/Touch: | |
On Submit/Button Activation: | ||
AJAX Partial Page Load (Main Content) on Activate Link or Button: | ||
AJAX Partial Page Load (Secondary Content) on Activate Link or Button: | ||
User Input Methods | See the requirements for Device-Independent User Input regarding:
|
Required multiple |