WCAG criterion
1.3.1 Info and Relationships — Level A
Description
The LoginPage renders entirely inside <div> elements with no <main> landmark. Screen reader users who navigate by landmarks cannot jump to the main content area of the page, as no <main> region is declared.
Steps to reproduce
- Navigate to
/login
- Open a screen reader (e.g. VoiceOver on macOS or NVDA on Windows)
- Open the rotor / landmarks list
- Observe: only a generic region or no landmarks; no
<main> is listed
Expected behaviour
A <main> element wraps the login card, appearing in the screen reader's landmarks list and allowing direct navigation to it.
Actual behaviour
The page has no landmark structure: the outermost element is <div className="flex h-dvh ...">.
Fix
Wrap the login card in <main>:
return (
<main className="flex h-dvh items-center justify-center bg-gray-50">
<div className="w-full max-w-sm rounded-lg bg-white p-8 shadow">
...
</div>
</main>
);
Location
orchestrator-ui/src/auth/LoginPage.tsx
WCAG criterion
1.3.1 Info and Relationships — Level A
Description
The
LoginPagerenders entirely inside<div>elements with no<main>landmark. Screen reader users who navigate by landmarks cannot jump to the main content area of the page, as no<main>region is declared.Steps to reproduce
/login<main>is listedExpected behaviour
A
<main>element wraps the login card, appearing in the screen reader's landmarks list and allowing direct navigation to it.Actual behaviour
The page has no landmark structure: the outermost element is
<div className="flex h-dvh ...">.Fix
Wrap the login card in
<main>:Location
orchestrator-ui/src/auth/LoginPage.tsx