fix(a11y): semantic headings, htmlFor/id associations, remove duplicate aria-labels

H-tag: add as=h1/h2 to dialog/UIA/auth headings (21 components)
Label: add htmlFor/id to PasswordRegisterForm (5 pairs) and PasswordResetForm (3 pairs)
Dupe: remove duplicate aria-label from Controls.tsx screenshare button, MembersDrawer, Members, RoomInput

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lotus Bot
2026-05-21 15:36:59 -04:00
parent 09905828ef
commit 689805ca6e
24 changed files with 37 additions and 33 deletions
@@ -170,12 +170,13 @@ export function PasswordResetForm({ defaultEmail }: PasswordResetFormProps) {
Homeserver <strong>{server}</strong> will send you an email to let you reset your password.
</Text>
<Box direction="Column" gap="100">
<Text as="label" size="L400" priority="300">
<Text as="label" size="L400" priority="300" htmlFor="emailInput">
Email
</Text>
<Input
defaultValue={defaultEmail}
type="email"
id="emailInput"
name="emailInput"
aria-label="Email address"
variant="Background"
@@ -193,12 +194,13 @@ export function PasswordResetForm({ defaultEmail }: PasswordResetFormProps) {
{(match, doMatch, passRef, confPassRef) => (
<>
<Box direction="Column" gap="100">
<Text as="label" size="L400" priority="300">
<Text as="label" size="L400" priority="300" htmlFor="passwordInput">
New Password
</Text>
<PasswordInput
ref={passRef}
onChange={doMatch}
id="passwordInput"
name="passwordInput"
aria-label="New password"
variant="Background"
@@ -208,12 +210,13 @@ export function PasswordResetForm({ defaultEmail }: PasswordResetFormProps) {
/>
</Box>
<Box direction="Column" gap="100">
<Text as="label" size="L400" priority="300">
<Text as="label" size="L400" priority="300" htmlFor="confirmPasswordInput">
Confirm Password
</Text>
<PasswordInput
ref={confPassRef}
onChange={doMatch}
id="confirmPasswordInput"
name="confirmPasswordInput"
aria-label="Confirm new password"
variant="Background"