Files
3x-ui/frontend/tools/oxlint/__fixtures__/unlabeled-control.tsx
T
Alireza Ahmadi e2184777a0 fix(frontend): make the panel usable with screen readers (#6907)
* fix(frontend): make the panel usable with screen readers

* fix(frontend): keep mobile tab names and the inbound expiry hint

Review of #6907 found two gaps in the screen-reader pass:

- On phone-width screens catTabLabel renders only the icon and names the
  tab by putting aria-label on it, but callers now pass that icon with
  aria-hidden for the desktop label, so every Settings, Xray and Host
  category tab lost its name under TalkBack. catTabLabel now clears
  aria-hidden on the icon it uses as the name.
- DateTimePicker forwarded id and aria-label but not aria-describedby,
  so the inbound expiry hint ("leave blank to never expire") was never
  attached. It now forwards it on both the Gregorian and Jalali input.
2026-10-23 18:29:47 +02:00

40 lines
814 B
TypeScript

import { Form, Input, Space, Switch } from 'antd';
declare function SettingListItem(props: { title?: string; children?: unknown }): null;
export const TableCell = () => <Switch checked />;
export const LabelOnlyItem = () => (
<Form.Item label="Email">
<Input />
</Form.Item>
);
export const IdWithoutHtmlFor = () => (
<Form.Item label="Email">
<Input id="email" />
</Form.Item>
);
export const HtmlForWithoutId = () => (
<Form.Item label="Email" htmlFor="email">
<Input />
</Form.Item>
);
export const NamedItemNested = () => (
<Form.Item label="Email" name="email">
<Space.Compact>
<Input />
</Space.Compact>
</Form.Item>
);
export const SettingNested = () => (
<SettingListItem title="Enabled">
<Space>
<Switch />
</Space>
</SettingListItem>
);