docs(qa): qualify Phase 9 regression and acceptance

This commit is contained in:
cesnimda
2026-10-23 07:31:27 +02:00
parent 0fb108bd67
commit 8e7e3f6387
63 changed files with 64728 additions and 6835 deletions
+3 -1
View File
@@ -2,11 +2,13 @@
**PARTIAL.** Automated findings and finite keyboard/DOM observations do not establish human accessibility acceptance.
The final ordinary suite collected 102 actual browser-zoom observations across 13 named areas at 100/200/400%, using `chrome.tabs.setZoom` with asserted zoom/DPR: [EN/light](zoom-en-light.json), [NB/dark](zoom-nb-dark.json). All recorded root/main horizontal overflow values are zero. Sixteen recorded states still contain controls outside the horizontal viewport before interaction: Jobs pagination, job/document section tabs, CV tabs and a Settings input. The collector's intentional-scroller flag covers only tables/documents/Board cards, so these flags alone establish neither clipping nor keyboard reachability. They remain explicit M09-06 targets; passing this collection test is not human reflow acceptance.
The inherited 64 incomplete axe occurrences are deduplicated in [triage](inherited-axe-triage.json): one aria-hidden drawer-focus occurrence, 48 native size-control background-overlap occurrences, five other obscured-background occurrences and ten invisible zero-badge occurrences. They are not 64 confirmed violations. Hidden zero badges are not applicable in the tested zero-area, aria-hidden state. The inherited Analytics drawer occurrence remains qualified: fresh shared-drawer settled Dashboard tests do not establish the exact original cause or actual reader behaviour. The53 background-contrast cases require contextual painted-colour inspection. New open-modal background incompletes are separately observed tool/state limits; do not conflate them with the inherited drawer node. Keep original occurrences and stable group IDs.
The settled diagnostic suite explicitly inspects zero badges, keyboard-opened drawer focus, Escape return, closed drawer/descendant visibility and 24 Tab presses, plus Dashboard editor controls. Exact final scans and incompletes are in [settled-axe.json](settled-axe.json) when accepted; failed transition observations remain retained in raw traces. No NVDA, VoiceOver, human reader, physical device, forced-colour or actual browser-zoom acceptance is claimed. [Human checklist](MANUAL_CHECKLIST.md) gives exact steps, owners and closure records.
Final `phase9-frozen` evidence is16 scans with0violations and120 incomplete-node occurrences:100`bgOverlap` (contextual colour inspection still required),16`shortTextContent` (the verified invisible zero badge; not applicable in that state) and4`focusable-modal-open` (background root during the active modal, a state/tool limitation; actual reader/modal behaviour remains M09-01/02/05). Counts are repeated occurrences across states, not120 unique defects. The earlier failed NB observations sampled15 visible descendants after root hiding but before Slide exit; the successor polls the complete unchanged settled predicate and then verifies24Tab presses, with no retries/skips or product drawer change.
Final `phase9-cta` evidence is 16 scans with 0 violations and 120 incomplete-node occurrences: 100 `bgOverlap` (contextual colour inspection required), 16 `shortTextContent` (the verified invisible zero badge; not applicable in that state) and four `focusable-modal-open` (background root during the active modal; actual reader/modal behaviour remains M09-01/02/05). These are repeated occurrences, not 120 unique defects. Earlier failed NB observations sampled 15 visible descendants after root hiding but before Slide exit; the successor polls the complete unchanged settled predicate and verifies 24 Tab presses, with no retries/skips or product drawer change.
The dictionary [comparison](localisation.json) found 2,871 English and 2,871 Bokmål keys, no missing/extra keys and no placeholder mismatch. The 49 identical values are candidates reviewed as technical/proper/established terms, not automatic untranslated-copy defects. Dictionary parity alone does not certify grammar, dates, pluralisation or every rendered state.
+64 -64
View File
@@ -788,32 +788,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1b_\" aria-label=\"Size for Today\"><option value=\"standard\">Standard</option><option value=\"full\">Full width</option></select>",
"target": [
"#_r_1b_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"contrastRatio": 0,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": "bgOverlap",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element's background color could not be determined because it is overlapped by another element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1f_\" aria-label=\"Size for Current pipeline\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1f_\" aria-label=\"Size for Today\"><option value=\"standard\">Standard</option><option value=\"full\">Full width</option></select>",
"target": [
"#_r_1f_"
],
@@ -838,7 +813,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1j_\" aria-label=\"Size for Application activity\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1j_\" aria-label=\"Size for Current pipeline\">",
"target": [
"#_r_1j_"
],
@@ -863,7 +838,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1n_\" aria-label=\"Size for Median current-stage age\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1n_\" aria-label=\"Size for Application activity\">",
"target": [
"#_r_1n_"
],
@@ -888,7 +863,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1r_\" aria-label=\"Size for Response sources\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1r_\" aria-label=\"Size for Median current-stage age\">",
"target": [
"#_r_1r_"
],
@@ -913,7 +888,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1v_\" aria-label=\"Size for Salary insights\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1v_\" aria-label=\"Size for Response sources\">",
"target": [
"#_r_1v_"
],
@@ -938,7 +913,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_23_\" aria-label=\"Size for Top companies by activity\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_23_\" aria-label=\"Size for Salary insights\">",
"target": [
"#_r_23_"
],
@@ -963,12 +938,37 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_27_\" aria-label=\"Size for Job tags\"><option value=\"standard\">Standard</option><option value=\"full\">Full width</option></select>",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_27_\" aria-label=\"Size for Top companies by activity\">",
"target": [
"#_r_27_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"contrastRatio": 0,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": "bgOverlap",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element's background color could not be determined because it is overlapped by another element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_2b_\" aria-label=\"Size for Job tags\"><option value=\"standard\">Standard</option><option value=\"full\">Full width</option></select>",
"target": [
"#_r_2b_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
@@ -3794,7 +3794,32 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1f_\" aria-label=\"Størrelse for I dag\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1b_\" aria-label=\"Størrelse for I dag\">",
"target": [
"#_r_1b_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"contrastRatio": 0,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": "bgOverlap",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element's background color could not be determined because it is overlapped by another element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1f_\" aria-label=\"Størrelse for Nåværende statusfordeling\">",
"target": [
"#_r_1f_"
],
@@ -3819,7 +3844,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1j_\" aria-label=\"Størrelse for Nåværende statusfordeling\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1j_\" aria-label=\"Størrelse for Søknadsaktivitet\">",
"target": [
"#_r_1j_"
],
@@ -3844,7 +3869,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1n_\" aria-label=\"Størrelse for Søknadsaktivitet\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1n_\" aria-label=\"Størrelse for Median tid i nåværende fase\">",
"target": [
"#_r_1n_"
],
@@ -3869,7 +3894,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1r_\" aria-label=\"Størrelse for Median tid i nåværende fase\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1r_\" aria-label=\"Størrelse for Svar etter kilde\">",
"target": [
"#_r_1r_"
],
@@ -3894,7 +3919,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1v_\" aria-label=\"Størrelse for Svar etter kilde\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_1v_\" aria-label=\"Størrelse for Lønnsinnsikt\">",
"target": [
"#_r_1v_"
],
@@ -3919,7 +3944,7 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_23_\" aria-label=\"Størrelse for Lønnsinnsikt\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_23_\" aria-label=\"Størrelse for Topp selskaper etter aktivitet\">",
"target": [
"#_r_23_"
],
@@ -3944,37 +3969,12 @@
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_27_\" aria-label=\"Størrelse for Topp selskaper etter aktivitet\">",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_27_\" aria-label=\"Størrelse for Jobbtagger\">",
"target": [
"#_r_27_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"contrastRatio": 0,
"fontSize": "10.5pt (14px)",
"fontWeight": "normal",
"messageKey": "bgOverlap",
"expectedContrastRatio": "4.5:1"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element's background color could not be determined because it is overlapped by another element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<select class=\"MuiNativeSelect-select MuiNativeSelect-outlined MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-aef9oy\" aria-invalid=\"false\" id=\"_r_2b_\" aria-label=\"Størrelse for Jobbtagger\">",
"target": [
"#_r_2b_"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined because it is overlapped by another element"
},
{
"any": [
{
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff