Content
View differences
Updated by Behrokh Satarnejad 4 months ago
**As** a keyboard-only and screen reader user
**I want to** access, understand, and interact with the content of widgets on the Project Overview and Project Dashboard pages, and reorder widgets using accessible controls
**so that** I can use project widgets effectively without relying on mouse interactions or visual-only cues
**Acceptance criteria**
* All widgets on Project Overview and Project Dashboard pages are accessible and usable with keyboard and screen readers.
* **WCAG:**
* **2.1.1 Keyboard**
* **4.1.2 Name, Role, Value**
* Each widget has a clear, programmatic structure:
* A meaningful widget title exposed as a heading
* Content that is readable and navigable in a logical order
* **WCAG:**
* **1.3.1 Info and Relationships**
* **2.4.6 Headings and Labels**
* **1.3.2 Meaningful Sequence**
* Widget content supports accessibility requirements for common content types:
* Text is readable by screen readers and not rendered only via CSS pseudo-elements or images
* Links have descriptive text and are keyboard accessible
* Images have appropriate text alternatives (alt text) or are marked as decorative when applicable
* Lists, tables, and status messages use semantic HTML
* **WCAG:**
* **1.1.1 Non-text Content**
* **1.3.1 Info and Relationships**
* **2.4.4 Link Purpose (In Context)**
* **4.1.2 Name, Role, Value**
* Focus management is consistent:
* Tabbing through a widget follows the visual order
* Focus does not jump unexpectedly between widgets
* Visible focus indicators are present for all interactive elements
* Widget reordering (drag and drop):
* Has a fully accessible keyboard alternative (no mouse required)
* **WCAG:**
Provides clear instructions for keyboard users
* **2.4.3 Focus Order**
Announces “pick up”, movement, and “drop” results via accessible feedback (e.g., live regions)
* **2.4.7 Focus Visible**
Maintains logical focus during and after the reorder action
* Widgets do not introduce keyboard traps (e.g., focus stuck in embedded content).
* **WCAG:**
* **2.1.2 No Keyboard Trap**
* The widgets pass automated accessibility checks and are manually tested with keyboard-only and screen reader flows.
* **WCAG:**
* Supports conformance with **WCAG 2.1 AA**
**Technical notes**
* Define a widget accessibility baseline:
* Widget container uses a consistent pattern (e.g., heading + region)
* Use landmarks/regions where helpful (e.g., `role="region"` with `aria-labelledby` referencing the widget title)
* **WCAG:**
* **1.3.1 Info and Relationships**
* **2.4.1 Bypass Blocks**
* Ensure all widgets expose accessible names:
* Widget titles are unique per page where possible
* Icon-only actions include `aria-label`
* **WCAG:** For drag-and-drop reordering:
* Provide keyboard interaction pattern:
* **4.1.2 Name, Role, Value** Enter/Space to “pick up” a widget
* **2.4.6 Headings and Labels**
Arrow keys to move position (or move between drop targets)
* Avoid using non-semantic clickable containers; use `<button>` / `<a>` with correct semantics.
Enter/Space to “drop”
* **WCAG:**
Escape to cancel
* **4.1.2 Name, Role, Value**
* **2.1.1 Keyboard**
**Out Announce position changes (e.g., “Moved to position 2 of scope:**
6”)
* Images have appropriate text alternatives (alt text) or are marked as decorative when applicable
* Widget reordering (drag and drop)
* Ensure the DOM order matches the visual layout to avoid screen reader confusion.
* Avoid using non-semantic clickable containers; use `<button>` / `<a>` with correct semantics.
* (Explicitly excluded) Resizing behavior is not implemented in this feature.
<br>
**I want to** access, understand, and interact with the content of widgets on the Project Overview and Project Dashboard pages, and reorder widgets using accessible controls
**so that** I can use project widgets effectively without relying on mouse interactions or visual-only cues
**Acceptance criteria**
* All widgets on Project Overview and Project Dashboard pages are accessible and usable with keyboard and screen readers.
* **2.1.1 Keyboard**
* **4.1.2 Name, Role, Value**
* Each widget has a clear, programmatic structure:
* A meaningful widget title exposed as a heading
* Content that is readable and navigable in a logical order
* **1.3.1 Info and Relationships**
* **2.4.6 Headings and Labels**
* **1.3.2 Meaningful Sequence**
* Widget content supports accessibility requirements for common content types:
* Text is readable by screen readers
* Links have descriptive text and are keyboard accessible
*
*
* **1.1.1 Non-text Content**
* **1.3.1 Info and Relationships**
* **2.4.4 Link Purpose (In Context)**
* **4.1.2 Name, Role, Value**
* Focus management is consistent:
* Tabbing through a widget follows the visual order
* Focus does not jump unexpectedly between widgets
* Visible focus indicators are present for all interactive elements
* Widget reordering (drag and drop):
* Has a fully accessible keyboard alternative (no mouse required)
* **WCAG:**
* **2.1.2 No Keyboard Trap**
* The widgets pass automated accessibility checks and are manually tested with keyboard-only and screen reader flows.
* **WCAG:**
* Supports conformance with **WCAG 2.1 AA**
* Define a widget accessibility baseline:
* Widget container uses a consistent pattern (e.g., heading + region)
* Use landmarks/regions where helpful (e.g., `role="region"` with `aria-labelledby` referencing the widget title)
* **1.3.1 Info and Relationships**
* **2.4.1 Bypass Blocks**
* Ensure all widgets expose accessible names:
* Widget titles are unique per page where possible
* Icon-only actions include `aria-label`
* Provide keyboard interaction pattern:
* **4.1.2 Name, Role, Value**
* **2.4.6 Headings and Labels**
* **2.1.1 Keyboard**
**Out
* Widget reordering (drag and drop)
* Ensure the DOM order matches the visual layout to avoid screen reader confusion.
* Avoid using non-semantic clickable containers; use `<button>` / `<a>` with correct semantics.
* (Explicitly excluded) Resizing behavior is not implemented in this feature.
<br>