Challenge 3: Apply the Methodology to a New Page — Possible Solution
====================================================================
SCENARIO: A SaaS dashboard with a data table, a settings form, and a
notification bell icon.
STEP 1 — AUTOMATED SCAN FIRST
----------------------------------
Run axe/Lighthouse to catch the easy, mechanically-detectable issues
first — likely candidates given this page's content: missing labels on
settings form fields, insufficient contrast on table text or the bell
icon, and a missing accessible name if the bell is icon-only.
STEP 2 — FIX SEMANTIC HTML & ARIA
--------------------------------------
Check that the data table uses real
/
/
markup (not a
div-based grid layout) so column/row relationships are actually
programmatically available — a data table is a strong candidate for
this exact div-vs-semantic-element problem. Check the notification bell
isn't a div with onclick, and if it's icon-only, it needs Chapter 3's
aria-label pattern (e.g. aria-label="Notifications") rather than no
accessible name at all.
STEP 3 — FIX KEYBOARD NAVIGATION
-------------------------------------
A data-heavy dashboard likely has many interactive elements (sortable
column headers, row actions, filters) — verify tab order matches visual
layout (Chapter 4's DOM-order point is especially relevant for a
grid/table layout, which commonly uses CSS positioning that can
decouple visual and source order), and check for any outline: none with
no :focus-visible replacement, a very common oversight in dashboard UI
kits.
STEP 4 — FIX FORMS
-----------------------
The settings form specifically needs Chapter 5's treatment: real