Aman-Mittal opened a new issue, #746:
URL: https://github.com/apache/fineract-backoffice-ui/issues/746

   ## What happens
   
   On any authenticated screen, focus order goes through the header controls 
(sidebar toggle, search, theme, Guide, language, Logout) and then **every 
sidebar link** before reaching `<main>`. Measured on `/clients` at 1440×900 by 
pressing Tab from the top of the document until `document.activeElement` was 
inside `main`:
   
   ```
   tabsToMain: 105
   ```
   
   There's no skip link (`a[href="#main"]`, `.skip-link` or similar) anywhere 
in the layout. The sidebar has around 115 entries across 19 groups and is fully 
expanded on desktop, so this cost applies on every page load and every route 
change.
   
   That fails **WCAG 2.4.1 Bypass Blocks (Level A)**. For staff who work 
keyboard-first, which is common in back-office data entry, every route change 
means more than 100 key presses or a mouse.
   
   The focus indicators themselves are fine: header buttons and nav links all 
showed a visible outline during the sweep.
   
   ## Suggested fix
   
   In `MainLayoutComponent`:
   
   - Add a visually hidden, focus-revealed **"Skip to main content"** link as 
the first focusable element, targeting `<main id="main-content" tabindex="-1">`.
   - After router navigation, move focus to `main` (or its heading), so a route 
change doesn't drop the keyboard user back at the top of the sidebar.
   
   ## Regression test
   
   A Playwright check: load a protected route, press Tab once, assert the 
focused element is the skip link; press Enter, assert focus is inside `main`.
   
   ## Tested against
   
   Deployed build of `main` 
(https://aman-mittal.github.io/fineract-backoffice-ui), Chrome 1440×900, 
2026-10-16.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to