fix(a11y): size recorded-status drilldown targets

This commit is contained in:
cesnimda
2026-10-10 22:08:50 +02:00
parent a3ecca9599
commit 22455bba0a
2 changed files with 7 additions and 1 deletions
@@ -3,3 +3,9 @@
The ordinary native regression reproduces a standalone Analytics custom-status link with an actual 18 px target height, below the existing 24 px criterion. This is a separate list, not an inline prose exception. The new test also requires keyboard navigation to preserve the exact non-ASCII custom status query and load its owned job. It exercises EN/light phone and NB/dark tablet; no report calculation or status value is changed.
Two initial test attempts incorrectly toggled an already-open reporting disclosure closed. After correcting that fixture action, the meaningful assertion fails at measured height 18 (required at least 24). This is the RED application evidence; those setup failures are not additional product defects. PRES-S01 remains PARTIAL for unverified whole-area acceptance, with this confirmed target defect separately open.
## Verified successor
The shared Dashboard/Analytics recorded-status link now has an actual minimum width/height of 24 px and vertically centred text. Its query generation and translated label remain unchanged. The native regression passes 1/1 across both locale/theme/viewport samples, measuring the target and keyboard-navigating to the exact custom status with the corresponding owned job visible. The five existing Analytics component regressions and frontend build pass. No aggregate, filter, canonical/custom status or API semantics changed.
The bounded A11Y-04 defect is repaired; PRES-S01 returns from FAIL to PARTIAL, retaining nonvisual chart, contrast and operator acceptance obligations. Native target geometry is not physical touch acceptance.
@@ -211,7 +211,7 @@ export default function DashboardView({ mode = "dashboard" }: { mode?: "dashboar
<Box component="summary" tabIndex={0}>{t("dashboardRecordedStatuses")}</Box>
<Stack spacing={1}>
{Object.entries(stats?.byStatus ?? {}).map(([status, count]) => <Box key={status} sx={{ display: "flex", justifyContent: "space-between", gap: 1 }}>
<Link component={RouterLink} to={`/jobs?${new URLSearchParams({ status })}`} sx={{ overflowWrap: "anywhere" }}>{statusLabel(t, status)}</Link>
<Link component={RouterLink} to={`/jobs?${new URLSearchParams({ status })}`} sx={{ overflowWrap: "anywhere", display: "inline-flex", alignItems: "center", minWidth: 24, minHeight: 24 }}>{statusLabel(t, status)}</Link>
<Typography variant="body2">{number(count)}</Typography>
</Box>)}
</Stack>