Keylens v1.0.0
See your site through the lens of keyboard users.

ℹ Starting deterministic Keylens audit for sample-interface-url
ℹ Launching chromium browser...
ℹ Navigating to sample-interface-url
ℹ Preparing page...
ℹ Testing skip link...
ℹ Discovering interactive elements...
ℹ Crawling tab order...
ℹ Verifying roving-tabindex composite widgets...
ℹ Confirming possible missing focus indicators via pixel diff...
✓ Crawl completed in 11758ms
ℹ Running 9 rules...
  ✓ Keyboard Trap
  ✗ Unreachable Interactive Elements — 1 violation(s)
  ✓ Focus Order Mismatch
  ✓ Tabindex Abuse
  ✗ Missing Focus Indicator — 1 violation(s)
  ✗ Skip Link — 1 violation(s)
  ✓ Focus Not Obscured
  ✓ Focus After Interaction
  ✓ Broken Roving Tabindex Navigation

🔍 Keylens v1.0.0 — Keyboard Navigation Audit
────────────────────────────────────────────────────────────
URL: sample-interface-url
Focusable elements: 23
Interactive elements: 24
Unreached: 1
Tab cycle completed: Yes
Duration: 11758ms

────────────────────────────────────────────────────────────
Rules:

  ✓ keyboard-trap
  ✗ unreachable-elements — 1 issue(s)
  ● 1 interactive element(s) are not reachable via keyboard.
    └─ section:nth-of-type(3) > form > div
  ✓ focus-order-mismatch
  ✓ tabindex-abuse
  ✗ missing-focus-indicator — 1 issue(s)
  ● 3 element(s) show no visible change between focused and unfocused states.
    └─ section:nth-of-type(2) > div > div:nth-of-type(1) > a
    └─ section:nth-of-type(2) > div > div:nth-of-type(2) > a
    └─ section:nth-of-type(2) > div > div:nth-of-type(3) > a
  ✗ skip-link — 1 issue(s)
  ● No skip navigation link found among the first focusable elements. Keyboard users must tab through all navigation items to reach main content.
  ✓ focus-not-obscured
  ✓ focus-after-interaction
  ✓ roving-tabindex-broken

────────────────────────────────────────────────────────────
Result: 2 error(s), 1 warning(s)  — Score: 89/100