Skip to content
L
LearnCoachAssist
Topics
AI
AI Agents (500 Questions)
AI Math (500 Questions)
AI Math Beginner
AI Search Results
Claude Code Prompts
Art & Design
Art History
Color Theory
Graphic Design Principles
Knitting And Crochet
Photography Exposure Triangle And Composition
Business
Accounting Basics
Customer Research
Economics
Excel Formulas For Financial Analysts
Go To Market Strategy
Browse all topics →
Packs
Featured Packs
Python Programming Essentials
Prompt Engineering
Prompting Claude Code
AI Agents and Autonomous Systems
SQL and Database Fundamentals
JavaScript Fundamentals
Algorithms and Data Structures
Git and Version Control
Browse all packs →
Learn
Learning Paths
AI Deck Generator
How it works
Quiz
Blog
Cheat Sheets
Pricing
Resources
Pricing
Compare
FAQ
About
Contact
Effective Studying Guide
Free Anki Decks
Log in
Start Free
Topics
AI
AI Agents (500 Questions)
AI Math (500 Questions)
AI Math Beginner
AI Search Results
Claude Code Prompts
Art & Design
Art History
Color Theory
Graphic Design Principles
Knitting And Crochet
Photography Exposure Triangle And Composition
Business
Accounting Basics
Customer Research
Economics
Excel Formulas For Financial Analysts
Go To Market Strategy
Browse all topics →
Packs
Python Programming Essentials
Prompt Engineering
Prompting Claude Code
AI Agents and Autonomous Systems
SQL and Database Fundamentals
JavaScript Fundamentals
Algorithms and Data Structures
Git and Version Control
Browse all packs →
Learn
Learning Paths
AI Deck Generator
How it works
Quiz
Blog
Cheat Sheets
Pricing
Resources
Pricing
Compare
FAQ
About
Contact
Effective Studying Guide
Free Anki Decks
Start Free
Log in
← Quit
Accessibility ARIA Patterns Practice Exam
Question
1
of
50
60:00
Question 1
Accessibility ARIA Patterns
What is the "inert" HTML attribute used for?
7:1.
inert (an HTML attribute) marks content as non-interactive and hidden from assistive tech, complementing focus trapping in a modal.
Indicates a form field must be filled in before submission; announced as "required" by screen readers.
progressbar announces a numeric value that changes; status is a general polite live region for short textual updates like "Saved".
Question 2
Accessibility ARIA Patterns
What does the CSS pseudo-class :focus-visible do?
Applies focus styles only when focus comes from keyboard or other non-pointer input, so mouse clicks don't show rings but keyboard tabbing does.
radio is the WAI-ARIA radio button, used inside a radiogroup; menuitemradio is a radio-like item inside a menu, where arrow keys move and Space toggles.
aria-pressed is for buttons that toggle; aria-checked is for checkboxes, switches, and menu items with a checked state.
If you can use a native HTML element or attribute that has the semantics and behavior you need, use that — do not add ARIA roles, states, or properties.
Question 3
Accessibility ARIA Patterns
What does the acronym "a11y" stand for in web development?
Use role="menu" only for true application menus (File/Edit dropdowns). For site navigation, use a `
` inside `
` so the standard list/keyboard model is preserved.
Wraps a set of related controls that should be perceived as one unit, paired with aria-label/aria-labelledby to give the group a name (e.g., a radio group "Font size").
"a11y" is a numeronym for "accessibility" — 'a' + 11 letters + 'y'.
That a checkbox or menuitemcheckbox represents a tri-state value where some but not all child items are checked (e.g., "select all" with partial selection).
Question 4
Accessibility ARIA Patterns
What are WCAG's "link purpose" requirements (2.4.4)?
scope="col" associates the header with all cells in that column; scope="row" associates it with all cells in that row.
A live region showing time remaining or elapsed, announced as a timer when aria-live="off" is set, otherwise behaving like a status region.
Users with vestibular disorders or motion sensitivity can opt in to reduced motion via OS settings; sites should disable or minimize non-essential animations (parallax, autoplay video) inside @media (prefers-reduced-motion: reduce).
Every link's accessible name should make its destination clear out of context, e.g., "Read the accessibility guide" not "click here".
Question 5
Accessibility ARIA Patterns
What is the difference between aria-pressed and aria-checked?
Left/Right arrows move focus and selection between tabs; Home/End jump to the first/last tab; Tab exits the tablist to the next focusable element.
role="search" (or a `
`/`
` with an accessible name) marks a search region so screen-reader users can jump to it directly.
"a11y" is a numeronym for "accessibility" — 'a' + 11 letters + 'y'.
aria-pressed is for buttons that toggle; aria-checked is for checkboxes, switches, and menu items with a checked state.
Question 6
Accessibility ARIA Patterns
What is the purpose of `
` or wrapping an input in a `
`?
A hierarchical list where each item can be expanded/collapsed; role="tree" with role="treeitem" children. Right arrow expands or moves to the first child; left collapses or moves to the parent.
Associates the label with the form control so clicking it focuses the control and screen readers announce the label as the control's accessible name.
Use a tablist pattern where slides are tabpanels and selectors are tabs, with Previous/Next controls, an autoplay toggle, and a Pause/Play button; provide live region announcements for slide changes.
Makes the element focusable programmatically (e.g., via element.focus()) but removes it from sequential Tab order.
Question 7
Accessibility ARIA Patterns
When should role="presentation" (or role="none") be used?
When true, assistive tech announces the entire region on every change; when false, only the changed nodes are announced.
role="grid" container with role="row" children and role="gridcell" (or columnheader/rowheader) inside; arrow keys move between cells; Home/End jump within a row; Ctrl+Home/End jump to the first/last cell.
aria-labelledby > aria-label > native label or label-associated text.
On a purely decorative HTML element whose children alone provide the semantics, e.g., a `
` used only for layout.
Question 8
Accessibility ARIA Patterns
What does aria-modal="true" tell assistive technology?
aria-label takes a string as its value; aria-labelledby takes the id(s) of other elements whose text becomes the name (and can reference visible text, supporting translation and updates).
That the rest of the page is inert while the dialog is open, so the user should not be navigating outside it.
Makes the element focusable via keyboard and places it in the natural document Tab order.
When a section is a significant area of the page that screen-reader users should be able to navigate to AND it has an accessible name; otherwise it is not exposed as a landmark.
Question 9
Accessibility ARIA Patterns
What does the "Accessible Rich Internet Applications" (ARIA) specification do?
Showing users "Sign up with Google" visually but coding the button with aria-label="Google" — the screen reader announces a different name than sighted users see, which fails WCAG 2.5.3 (Label in Name).
Associates the label with the form control so clicking it focuses the control and screen readers announce the label as the control's accessible name.
It defines roles, states, and properties that can be added to HTML so web content and applications are more accessible to assistive technology users.
role="grid" container with role="row" children and role="gridcell" (or columnheader/rowheader) inside; arrow keys move between cells; Home/End jump within a row; Ctrl+Home/End jump to the first/last cell.
Question 10
Accessibility ARIA Patterns
What is the impact of the prefers-reduced-motion media query?
Users with vestibular disorders or motion sensitivity can opt in to reduced motion via OS settings; sites should disable or minimize non-essential animations (parallax, autoplay video) inside @media (prefers-reduced-motion: reduce).
That the rest of the page is inert while the dialog is open, so the user should not be navigating outside it.
Perceivable, Operable, Understandable, and Robust.
The `
` element when it is a direct child of the ``.
Question 11
Accessibility ARIA Patterns
What is the difference between role="alert" and role="alertdialog"?
Headings and labels must describe the topic or purpose of their section or control; vague labels like "More" without context are not enough.
role="alert" is a non-modal live region that announces a message; role="alertdialog" is a modal dialog that requires a user response and interrupts the user.
1) Purely decorative? Use alt="". 2) Conveys information? Use alt describing it. 3) Functional (link/button)? Use alt describing the action, not the image. 4) Complex? Use short alt plus a longer description.
An accessible name (via aria-label, aria-labelledby, or alt on a related element) is required; otherwise the image is announced as "image" with no description, failing 1.1.1.
Question 12
Accessibility ARIA Patterns
What is the recommended pattern for sortable table headers?
A `
` inside a `
` with aria-sort="ascending|descending|none" on the `
`, and aria-label like "Sort by Name, currently ascending".
Tells assistive technology to skip the image as decorative; the image is still rendered visually but is not announced.
scope="col" associates the header with all cells in that column; scope="row" associates it with all cells in that row.
role="combobox" (or a real `
`) with aria-expanded and aria-controls pointing to a role="listbox" of role="option" children; aria-activedescendant or roving tabindex tracks the focused option.
Question 13
Accessibility ARIA Patterns
What landmark role does `
complementary.
Every interactive element must show a visible focus indicator (via :focus-visible or a manual style) and that indicator must have at least 3:1 contrast against the adjacent background (WCAG 1.4.11).
role="search" (or a `
`/`
` with an accessible name) marks a search region so screen-reader users can jump to it directly.
It announces that activating the element opens a popup and can specify its kind: true, "menu", "listbox", "tree", "grid", or "dialog".
Question 14
Accessibility ARIA Patterns
What is the pattern for an accessible table?
All interactive ARIA controls must be usable with the keyboard.
The `
` element when it is a direct child of the ``.
Use a real `
` with `
`, `
`, `
`, `
`, and `
`. Use id/headers for multi-level or irregular tables.
inert (an HTML attribute) marks content as non-interactive and hidden from assistive tech, complementing focus trapping in a modal.
Question 15
Accessibility ARIA Patterns
What is the role="search" landmark?
role="alert".
A tablist containing role="tab" elements with aria-controls pointing to their tabpanel, aria-selected indicating the active tab, and each tabpanel having role="tabpanel" and aria-labelledby pointing back to its tab.
role="search" (or a `
`/`
` with an accessible name) marks a search region so screen-reader users can jump to it directly.
Lets a composite widget keep DOM focus on the container while announcing a "virtual" focus on a child element identified by id.
Question 16
Accessibility ARIA Patterns
Which HTML element is equivalent to role="main"?
On a purely decorative HTML element whose children alone provide the semantics, e.g., a `
` used only for layout.
Associates the label with the form control so clicking it focuses the control and screen readers announce the label as the control's accessible name.
Removing the focus ring without an alternative makes keyboard navigation invisible. Replace it with a custom :focus-visible style instead.
The `
` element.
Question 17
Accessibility ARIA Patterns
What is an ARIA "state"?
The `
` element.
A `
` with aria-pressed="true|false", announced as "pressed" or "not pressed" by screen readers. Avoid using a checkbox styled as a button.
An aria-* attribute conveying a dynamic condition that may change in response to user action, such as aria-expanded or aria-selected.
That the rest of the page is inert while the dialog is open, so the user should not be navigating outside it.
Question 18
Accessibility ARIA Patterns
What is aria-roledescription used for?
Overrides the screen reader's default announcement of an element's role with a custom string — useful for custom widgets like a split-pane where "slider" is misleading.
It controls whether an element is focusable and whether it participates in sequential keyboard navigation.
1) Purely decorative? Use alt="". 2) Conveys information? Use alt describing it. 3) Functional (link/button)? Use alt describing the action, not the image. 4) Complex? Use short alt plus a longer description.
7:1.
Question 19
Accessibility ARIA Patterns
What does aria-activedescendant do?
Points to the id of an element that the current element controls or affects, e.g., a button that controls a menu's id, or a tab that controls a tabpanel.
1) Purely decorative? Use alt="". 2) Conveys information? Use alt describing it. 3) Functional (link/button)? Use alt describing the action, not the image. 4) Complex? Use short alt plus a longer description.
aria-disabled="true" marks the element as disabled to assistive tech but does NOT prevent user interaction. The HTML disabled attribute removes interactivity. Prefer the real disabled attribute when possible.
Lets a composite widget keep DOM focus on the container while announcing a "virtual" focus on a child element identified by id.
Question 20
Accessibility ARIA Patterns
What is an "accessible name"?
Keyboard users can still focus it, but screen readers will not announce it — producing a "focus trap to nowhere" and an accessibility failure.
Perceivable, Operable, Understandable, and Robust.
Lets a composite widget keep DOM focus on the container while announcing a "virtual" focus on a child element identified by id.
The text or label that assistive technologies announce for an element, computed from native HTML labels, aria-label, aria-labelledby, etc.
Question 21
Accessibility ARIA Patterns
What does an empty alt="" on an image do?
An aria-* attribute describing a relatively stable characteristic of an element, such as aria-label, aria-required, or aria-haspopup.
4.5:1.
7:1.
Tells assistive technology to skip the image as decorative; the image is still rendered visually but is not announced.
Question 22
Accessibility ARIA Patterns
What does aria-describedby do for form errors?
Accessibility means people with disabilities can perceive, understand, navigate, and interact with the web. Usability is the broader quality of a design being easy to use for everyone, including those without disabilities.
For an icon button, give the button an aria-label (e.g., "Close") and mark the icon span aria-hidden="true" so the icon is not double-announced.
Associates the input with a separate error message element so the screen reader announces the field's name and the error, e.g., "Email, invalid entry, please enter a valid email".
Polite updates wait until the user pauses; assertive updates interrupt the current announcement immediately and should be used sparingly.
Question 23
Accessibility ARIA Patterns
What is a "live region"?
Points to the id of an element that the current element controls or affects, e.g., a button that controls a menu's id, or a tab that controls a tabpanel.
Any element with aria-live (or a role that implies it) whose text content can change dynamically and should be announced.
The `
` element.
A tablist containing role="tab" elements with aria-controls pointing to their tabpanel, aria-selected indicating the active tab, and each tabpanel having role="tabpanel" and aria-labelledby pointing back to its tab.
Question 24
Accessibility ARIA Patterns
What is the purpose of aria-required="true"?
role="list" on a non-list element exposes it as a list to AT; a real `
` is already a list. Don't add role="list" to a `
` to "fix" list announcements when CSS has stripped the list semantics.
Indicates a form field must be filled in before submission; announced as "required" by screen readers.
A group of button headers with aria-expanded controlling a region with role="region" and aria-labelledby pointing to the header that opens it.
scope="col" associates the header with all cells in that column; scope="row" associates it with all cells in that row.
Question 25
Accessibility ARIA Patterns
Which HTML element is equivalent to role="banner"?
All interactive ARIA controls must be usable with the keyboard.
The `
` element when it is a direct child of the ``.
The `
Perceivable, Operable, Understandable, and Robust.
Question 26
Accessibility ARIA Patterns
What is the difference between role="presentation" and aria-hidden="true"?
The div does not natively respond to Enter/Space, cannot receive focus by default, and lacks disabled and form-submission semantics — all must be reimplemented with JS and tabindex.
An accessible name (via aria-label, aria-labelledby, or alt on a related element) is required; otherwise the image is announced as "image" with no description, failing 1.1.1.
7:1.
role="presentation removes the element from the accessibility tree but keeps its children; aria-hidden removes the element AND all its descendants.
Question 27
Accessibility ARIA Patterns
What role announces dynamic status updates politely, like "Saved" or "Loading complete"?
For any control with visible text, the accessible name must contain that visible text (case-insensitively), so voice-control users saying "click Sign up" hit the right button.
role="status" (implicit aria-live="polite").
A live region showing time remaining or elapsed, announced as a timer when aria-live="off" is set, otherwise behaving like a status region.
The visual order no longer matches the DOM order, so tabbing and screen-reader navigation become confusing and the page fails WCAG 1.3.2 (Meaningful Sequence).
Question 28
Accessibility ARIA Patterns
What is the WCAG 2.1 minimum contrast ratio for normal text at level AA?
"a11y" is a numeronym for "accessibility" — 'a' + 11 letters + 'y'.
Keyboard users can still focus it, but screen readers will not announce it — producing a "focus trap to nowhere" and an accessibility failure.
role="combobox" (or a real `
`) with aria-expanded and aria-controls pointing to a role="listbox" of role="option" children; aria-activedescendant or roving tabindex tracks the focused option.
4.5:1.
Question 29
Accessibility ARIA Patterns
What is the role of scope on a `
`?
Visual, auditory, physical/motor, and cognitive/neurological disabilities.
scope="col" associates the header with all cells in that column; scope="row" associates it with all cells in that row.
4.5:1.
aria-pressed is for buttons that toggle; aria-checked is for checkboxes, switches, and menu items with a checked state.
Question 30
Accessibility ARIA Patterns
What is the standard accessible error-handling pattern for forms?
Detects whether the user has requested light or dark mode, so the site can offer a theme with sufficient contrast in both modes.
All interactive elements must have an accessible name.
It must appear on focus (not only on hover), because keyboard-only users have no hover. Hide it on blur or Escape.
On submit, set aria-invalid="true" on bad fields, associate each with an error message via aria-describedby, add an alert live region summarizing errors at the top, and keep focus on the first error or summary.
Question 31
Accessibility ARIA Patterns
What is the difference between aria-activedescendant and roving tabindex?
Both indicate the "current" item. With aria-activedescendant, focus stays on the container; with roving tabindex, focus itself moves among children via tabindex=0 on the current and tabindex=-1 on the others.
A dialog used for an urgent message that requires confirmation; it inherits aria-live="assertive" so the message interrupts the user.
Removing the focus ring without an alternative makes keyboard navigation invisible. Replace it with a custom :focus-visible style instead.
An anchor at the very start of the page pointing to the main content id (e.g., #main), placed as the first focusable element so keyboard and screen-reader users can bypass nav.
Question 32
Accessibility ARIA Patterns
What is the difference between a listbox and a menu?
A listbox (role="listbox" with role="option") is for selecting one or more values from a set and supports aria-multiselectable; a menu is for commands/actions.
Headings and labels must describe the topic or purpose of their section or control; vague labels like "More" without context are not enough.
A button that controls the visibility of a single region of content, using aria-expanded (and often aria-controls pointing to the region's id).
Use role="menu" only for true application menus (File/Edit dropdowns). For site navigation, use a `
` inside `
` so the standard list/keyboard model is preserved.
Question 33
Accessibility ARIA Patterns
What is the "button vs link" decision rule?
Associates the label with the form control so clicking it focuses the control and screen readers announce the label as the control's accessible name.
An attribute (role="...") that tells assistive technology the type of widget or structure an element represents (e.g., role="button", role="navigation").
progressbar announces a numeric value that changes; status is a general polite live region for short textual updates like "Saved".
Use a link (`
`) when activation navigates to a new URL or fragment; use a button for actions (submit, open dialog, toggle) without navigation.
Question 34
Accessibility ARIA Patterns
Which four disability categories does WCAG primarily address?
Users with vestibular disorders or motion sensitivity can opt in to reduced motion via OS settings; sites should disable or minimize non-essential animations (parallax, autoplay video) inside @media (prefers-reduced-motion: reduce).
An `
` containing only an `
` icon and no text, with no aria-label, results in screen readers announcing just "link" or the icon's role — fix with aria-label="Twitter" or visually-hidden text.
Visual, auditory, physical/motor, and cognitive/neurological disabilities.
When a section is a significant area of the page that screen-reader users should be able to navigate to AND it has an accessible name; otherwise it is not exposed as a landmark.
Question 35
Accessibility ARIA Patterns
What is the minimum accessibility issue with a clickable `
` that has no role, no tabindex, and no key handler?
It is not focusable and has no semantics — keyboard and screen-reader users cannot reach or understand it as a control.
Do not use role="presentation" or aria-hidden="true" on a focusable element or on an element that has focusable descendants.
That a checkbox or menuitemcheckbox represents a tri-state value where some but not all child items are checked (e.g., "select all" with partial selection).
A button that controls the visibility of a single region of content, using aria-expanded (and often aria-controls pointing to the region's id).
Question 36
Accessibility ARIA Patterns
What is the standard ARIA pattern for a modal dialog?
Declares a parent-child relationship in the accessibility tree that doesn't exist in the DOM, e.g., reparenting a tooltip into a dialog tree.
An aria-* attribute describing a relatively stable characteristic of an element, such as aria-label, aria-required, or aria-haspopup.
role="dialog" with aria-modal="true" on the dialog container, aria-labelledby pointing to the title, focus moved into the dialog, and Tab trapped inside until closed.
The disclosure, menu, or popup the button controls is currently visible/open; screen readers announce "expanded" or "collapsed".
Question 37
Accessibility ARIA Patterns
What is the WCAG 2.1 minimum contrast ratio for normal text at level AAA?
7:1.
role="search" (or a `
`/`
` with an accessible name) marks a search region so screen-reader users can jump to it directly.
aria-controls indicates an element affects another; aria-owns establishes a logical parent-child relationship used to build the accessibility tree.
Indicates the element represents the current item in a set: "page", "step", "location", "date", "time", "true", or "false". Common for "current page" on nav links.
Question 38
Accessibility ARIA Patterns
What does tabindex="-1" do?
Left/Right arrows move focus and selection between tabs; Home/End jump to the first/last tab; Tab exits the tablist to the next focusable element.
Makes the element focusable programmatically (e.g., via element.focus()) but removes it from sequential Tab order.
The div does not natively respond to Enter/Space, cannot receive focus by default, and lacks disabled and form-submission semantics — all must be reimplemented with JS and tabindex.
A group of button headers with aria-expanded controlling a region with role="region" and aria-labelledby pointing to the header that opens it.
Question 39
Accessibility ARIA Patterns
How should a tooltip behave on keyboard focus?
scope="col" associates the header with all cells in that column; scope="row" associates it with all cells in that row.
aria-label takes a string as its value; aria-labelledby takes the id(s) of other elements whose text becomes the name (and can reference visible text, supporting translation and updates).
It must appear on focus (not only on hover), because keyboard-only users have no hover. Hide it on blur or Escape.
A `
` with aria-pressed="true|false", announced as "pressed" or "not pressed" by screen readers. Avoid using a checkbox styled as a button.
Question 40
Accessibility ARIA Patterns
What is a "landmark" in accessibility?
Both indicate the "current" item. With aria-activedescendant, focus stays on the container; with roving tabindex, focus itself moves among children via tabindex=0 on the current and tabindex=-1 on the others.
Do not use role="presentation" or aria-hidden="true" on a focusable element or on an element that has focusable descendants.
The `
` element when it is a direct child of the ``.
A role identifying a major section of a page so screen-reader users can navigate to it quickly (banner, navigation, main, contentinfo, etc.).
Question 41
Accessibility ARIA Patterns
When should you use aria-describedby?
Use a tablist pattern where slides are tabpanels and selectors are tabs, with Previous/Next controls, an autoplay toggle, and a Pause/Play button; provide live region announcements for slide changes.
When an element needs additional context announced after its name, e.g., a password input with format requirements, or a field with an inline error message.
role="alert" is a non-modal live region that announces a message; role="alertdialog" is a modal dialog that requires a user response and interrupts the user.
A button that controls the visibility of a single region of content, using aria-expanded (and often aria-controls pointing to the region's id).
Question 42
Accessibility ARIA Patterns
What is the purpose of aria-live?
The `
` element when it is a direct child of the ``.
It marks a region whose content may change dynamically so assistive technologies announce updates, with politeness levels off, polite, or assertive.
A button that controls the visibility of a single region of content, using aria-expanded (and often aria-controls pointing to the region's id).
Indicates a form field must be filled in before submission; announced as "required" by screen readers.
Question 43
Accessibility ARIA Patterns
What is the "visible label ≠ accessible name" anti-pattern?
Showing users "Sign up with Google" visually but coding the button with aria-label="Google" — the screen reader announces a different name than sighted users see, which fails WCAG 2.5.3 (Label in Name).
role="grid" container with role="row" children and role="gridcell" (or columnheader/rowheader) inside; arrow keys move between cells; Home/End jump within a row; Ctrl+Home/End jump to the first/last cell.
Do not use role="presentation" or aria-hidden="true" on a focusable element or on an element that has focusable descendants.
An aria-* attribute describing a relatively stable characteristic of an element, such as aria-label, aria-required, or aria-haspopup.
Question 44
Accessibility ARIA Patterns
When should you use role="menu" vs. a plain navigation list?
Marks a form field as failing validation; set dynamically on submit or after the user leaves the field with an error so the screen reader announces "invalid entry" along with the error message.
Use role="menu" only for true application menus (File/Edit dropdowns). For site navigation, use a `
` inside `
` so the standard list/keyboard model is preserved.
complementary.
It announces that activating the element opens a popup and can specify its kind: true, "menu", "listbox", "tree", "grid", or "dialog".
Question 45
Accessibility ARIA Patterns
What is the recommended way to implement a skip link?
An anchor at the very start of the page pointing to the main content id (e.g., #main), placed as the first focusable element so keyboard and screen-reader users can bypass nav.
A parallel tree to the DOM that browsers expose to assistive technologies, derived from the DOM plus ARIA — listing accessible nodes with their roles, names, states, and properties.
Tab order must preserve meaning and operability — it should follow the visual reading order and DOM order. Don't use positive tabindex to "fix" order.
It jumps the element to the front of the Tab order ahead of natural order, making the page order unpredictable.
Question 46
Accessibility ARIA Patterns
What is the purpose of tabindex?
A group of button headers with aria-expanded controlling a region with role="region" and aria-labelledby pointing to the header that opens it.
Accessibility means people with disabilities can perceive, understand, navigate, and interact with the web. Usability is the broader quality of a design being easy to use for everyone, including those without disabilities.
progressbar announces a numeric value that changes; status is a general polite live region for short textual updates like "Saved".
It controls whether an element is focusable and whether it participates in sequential keyboard navigation.
Question 47
Accessibility ARIA Patterns
What does aria-checked="mixed" indicate?
Use a tablist pattern where slides are tabpanels and selectors are tabs, with Previous/Next controls, an autoplay toggle, and a Pause/Play button; provide live region announcements for slide changes.
Associates the label with the form control so clicking it focuses the control and screen readers announce the label as the control's accessible name.
That a checkbox or menuitemcheckbox represents a tri-state value where some but not all child items are checked (e.g., "select all" with partial selection).
If you can use a native HTML element or attribute that has the semantics and behavior you need, use that — do not add ARIA roles, states, or properties.
Question 48
Accessibility ARIA Patterns
What is the purpose of aria-owns?
Declares a parent-child relationship in the accessibility tree that doesn't exist in the DOM, e.g., reparenting a tooltip into a dialog tree.
On submit, set aria-invalid="true" on bad fields, associate each with an error message via aria-describedby, add an alert live region summarizing errors at the top, and keep focus on the first error or summary.
role="dialog" with aria-modal="true" on the dialog container, aria-labelledby pointing to the title, focus moved into the dialog, and Tab trapped inside until closed.
A role identifying a major section of a page so screen-reader users can navigate to it quickly (banner, navigation, main, contentinfo, etc.).
Question 49
Accessibility ARIA Patterns
What is the role of aria-haspopup?
A live region showing time remaining or elapsed, announced as a timer when aria-live="off" is set, otherwise behaving like a status region.
role="search" (or a `
`/`
` with an accessible name) marks a search region so screen-reader users can jump to it directly.
It announces that activating the element opens a popup and can specify its kind: true, "menu", "listbox", "tree", "grid", or "dialog".
Accessibility means people with disabilities can perceive, understand, navigate, and interact with the web. Usability is the broader quality of a design being easy to use for everyone, including those without disabilities.
Question 50
Accessibility ARIA Patterns
What is the "focus visible" rule for custom components?
Every interactive element must show a visible focus indicator (via :focus-visible or a manual style) and that indicator must have at least 3:1 contrast against the adjacent background (WCAG 1.4.11).
Makes the element focusable via keyboard and places it in the natural document Tab order.
role="article" can be added to any element to mark it as self-contained content, but a real `
` already has that semantic and is preferred.
Users with vestibular disorders or motion sensitivity can opt in to reduced motion via OS settings; sites should disable or minimize non-essential animations (parallax, autoplay video) inside @media (prefers-reduced-motion: reduce).
Question navigator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
← Previous
Next →
✅ Submit Exam