Files
ui/_docs/02_tasks/todo/AZ-468_test_header_dropdown.md
T
Oleksandr Bezdieniezhnykh 15a878d6f1 [AZ-455] Decompose Step 3 — test task specs (AZ-457..AZ-482)
Adds 26 blackbox-test task specs under epic AZ-455 plus the matching
rows in _dependencies_table.md. Each task depends on AZ-456 (test
infrastructure). Advances autodev existing-code flow Step 5 → Step 6
(Implement Tests, cycle 1) ready for batch implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 01:49:44 +03:00

2.0 KiB

Test — Header Flight Dropdown a11y

Task: AZ-468_test_header_dropdown Name: Header flight dropdown — closed/open a11y + Escape handler Description: Implement the 3 blackbox tests pinning the header flight dropdown's open/closed-state a11y attributes and the Escape-to-close handler-detachment behavior. Complexity: 2 points Dependencies: AZ-456_test_infrastructure Component: 10_app-shell (Header) (Blackbox Tests) Tracker: AZ-468 Epic: AZ-455

Problem

The header dropdown is keyboard-traversed dozens of times per session; an a11y regression makes the app unusable for keyboard / screen-reader users. The Escape handler must detach on close — a leak that hijacks Escape elsewhere.

Outcome

  • 3 scenarios pass.

Scope

Included

Scenario Profile Source file
FT-P-30 — header flight dropdown closed-state a11y fast blackbox-tests.md
FT-P-31 — header flight dropdown open-state a11y fast blackbox-tests.md
FT-N-09 — header dropdown Escape — close + handler detached fast blackbox-tests.md

Excluded

  • Flight selection logic itself (covered in 08_test_flight_selection_persistence).

Acceptance Criteria

AC-1: Closed state aria-expanded="false"; trigger has accessible name; no aria-activedescendant.

AC-2: Open state aria-expanded="true"; role="listbox" (or menu); option list has roles; aria-activedescendant points to a real id.

AC-3: Escape detach After Escape closes the dropdown, the document-level Escape handler installed by the dropdown is removed (tracked via addEventListener / removeEventListener spies). No leakage into other components' Escape handlers.

System Under Test Boundary

  • System under test: <Header> flight dropdown + Escape handler.
  • Allowed stubs: MSW for flights list endpoint.
  • Disallowed: reading dropdown React state.
  • Expected observables per results_report.md rows for FT-P-30, 31, FT-N-09.