Visual damage triage
Historical record — 2026-07-29
Preserved as observed. Current truth: Program Masterplan.
Measured basis for the post-remediation visual audit. Appendix A supplied 80 vision-only leads. Each lead below has exactly one verdict. Measurements were repeated in the same cache-disabled Chromium session; unstable observations would be marked unmeasured rather than averaged.
verdicts:
pass: the live surface does not reproduce the claimed damagedefect: the live surface reproduces measurable damagecapture-artifact: the image pipeline or capture state created the appearanceunmeasured: the necessary fixture or acceptance contract was absent
capture method:
- desktop: 1600×1000 CSS px, device scale factor 2
- mobile: 390×844 CSS px, device scale factor 2
- cache disabled
- full-page captures neutralise the fixed WordPress admin bar before capture
| ID | Asset | Lead | Verdict | Repeated live evidence | Owner / constraint |
|---|---|---|---|---|---|
| A01 | 01-dashboard-navigation.png | ”Starter library ready” and its description concatenated with no separator: “Starter library readyAll four editable starter quizzes are installed.” | defect | Ready banner children occupied full 1180 px rows; icon wrapper 1180×22; CTA 171.3×56 with arrow below label. | QuizWizz admin source |
| A02 | 01-dashboard-navigation.png | ”View starter quizzes” button floats over the setup-step list, overlapping the “Starter library ready” row and the rule above “Assemble a quiz”; ↗ glyph on a second line below the label. | defect | CTA occupied 171.3×56 and arrow was at y505 below text; banner flow overlapped its intended row. | QuizWizz admin source |
| A03 | 01-dashboard-navigation.png | checkmark bullet for “Starter library ready” sits on its own line above the text, unaligned with the inline ✓ bullets of the other steps. | defect | Ready icon wrapper was 1180×22 instead of the declared 42 px grid track. | QuizWizz admin source |
| A04 | 02-dashboard-details.png | same run-on label and same overlapping button, so not a one-off capture artifact. | defect | Second capture reproduced the same full-row child geometry. | QuizWizz admin source |
| A05 | settings-general.png | admin bar overlaps the page title; “QuizWizz Settings” sliced horizontally. | capture-artifact | Admin bar/title did not intersect after the mandated absolute-bar capture neutralisation. | QuizWizz admin source |
| A06 | settings-general.png | ”All changes saved” badge cut off at the right viewport edge. | pass | Saved badge remained inside toolbar and viewport on two loads. | QuizWizz admin source |
| A07 | settings-general.png | every workspace tab icon collides with its label with zero gap (General, Builder, Player, Appearance, PDF & Print, AI, Advanced, Help). | pass | All eight tab icon-to-label gaps measured 6 px. | QuizWizz admin source |
| A08 | settings-general.png | eye icon inside “Preview guest experience” overlaps the “P”. | pass | Preview opener icon/text overlap area was 0; measured gap 0 px without collision. | QuizWizz admin source |
| A09 | settings-general.png | section heading icons overlap their headings (Available experiences, Quiz size, Content languages, QuizWizz interface, Difficulty choices). | pass | Section heading icon gaps measured 8 px. | QuizWizz admin source |
| A10 | settings-general.png | ”Allowed range” label rendered with no control beneath it, ~70 px dead space; same void between the language cards and “Difficulty choices”. | pass | Allowed Range is a details control; opening it exposed all three controls. | QuizWizz admin source |
| A11 | settings-general.png | Content languages card row overflows, “Español” clipped; Difficulty choices clips “Hard”; “Increasing” wraps alone onto a second row. | pass | Language and difficulty grids stayed within their container; document width equalled viewport. | QuizWizz admin source |
| A12 | settings-general.png | left admin sidebar absent, content flush at x=0, “General” tab icon sliced by the left edge. | capture-artifact | Sidebar measured x0–160 and settings content began x182. | QuizWizz admin source |
| A13 | settings-builder.png | ”Question-pool formats” checkbox row renders as one overflowing outlined strip with label and description fused. | defect | Actual .qwizz-type-policy computed display:block; three 16×16 stock checkboxes and inline 15 px labels. | QuizWizz admin source |
| A14 | settings-builder.png | ”Category availability” renders as a single-column stack of ~70 px full-width pill cards instead of a grid. | defect | Actual owner is .qwizz-category-admin; computed display:block; 11 cards each 1180×172.8. | QuizWizz admin source |
| A15 | settings-builder.png | each category card’s icon drawn outside the card, flush against the left viewport edge. | defect | Category SVGs had no intrinsic dimensions and rendered 300×150. | QuizWizz admin source |
| A16 | settings-builder.png | admin bar rendered mid-page, painted across the “Surprise me” / “Science” cards. | capture-artifact | Mid-page bar disappeared under the neutralised capture method. | QuizWizz admin source |
| A17 | settings-builder.png | ”Editable quiz title” and “Language picker” rows push their “OR” control into a tiny unstyled box hard against the right edge; “Visitor can choose” clipped. | pass | Both exposure rows ended within x=1362; right segments were fully visible. | QuizWizz admin source |
| A18 | settings-builder.png | large blank band where the search field and workspace tab strip should be; tab strip missing. | capture-artifact | Live toolbar and tabs were present; blank band was stitched-capture damage. | QuizWizz admin source |
| A19 | settings-player.png | ”After an answer” radio group renders as outlined boxes with label and description fused, wrapping into the “Feedback delay (milliseconds)” label. | pass | Radio cards remained inside their panel with separate b/small content and no collision. | QuizWizz admin source |
| A20 | settings-player.png | ”Completion actions” toggles (Retry, New quiz, Print, Share) sliced vertically by the right viewport edge. | pass | All completion switches remained inside their grid column. | QuizWizz admin source |
| A21 | settings-appearance.png | admin bar rendered mid-page between the subtitle and the search field. | capture-artifact | Mid-page bar disappeared under the neutralised capture method. | QuizWizz admin source |
| A22 | settings-appearance.png | ”Answer prefix” and “Printable question columns” options render as bare outlined label boxes with no card or segmented-control styling. | pass | Controls were consistently rendered as the configured option-card/segment treatment. | QuizWizz admin source |
| A23 | settings-appearance.png | ”Show question count”, “Repeat question text”, “Include explanations” toggles clipped at the right edge; the latter two touch. | pass | All three toggles remained inside the panel with no overlap. | QuizWizz admin source |
| A24 | settings-appearance.png | ”Saved with every quiz” fused with its description on one line. | pass | Label and description occupied distinct DOM descendants; no geometric overlap. | QuizWizz admin source |
| A25 | settings-appearance.png | PDF theme card row overflows, “Aqua” cut at the right edge; bottom eye icon drawn over the helper text. | pass | Theme cards remained within the 1180 px panel; eye icon did not overlap helper text. | QuizWizz admin source |
| A26 | settings-advanced.png | admin bar mid-page above the tab strip; “Data & Lifecycle” heading sliced by the tab row. | capture-artifact | Mid-page bar disappeared and heading remained intact under neutralisation. | QuizWizz admin source |
| A27 | settings-advanced.png | right column overflows: “Full portability” description cut mid-sentence; “Import portability JSON”, “Import draft quiz”, “Create draft”, “Question language” all clipped. | pass | Advanced panels and fields ended within x=1362; page width equalled viewport. | QuizWizz admin source |
| A28 | settings-advanced.png | shield icons drawn on top of the text they precede. | pass | Measured icon/text overlap area was 0. | QuizWizz admin source |
| A29 | settings-search-theme.png | last result garbles the matched word by splitting the highlight: “selectable theme s.” | pass | Highlight split preserved the full word; no garbled text after the search repair. | QuizWizz admin source |
| A30 | settings-search-theme.png | first result’s breadcrumb repeats itself: “PDF & PRINT › PDF & PRINT”. | pass | Breadcrumb duplication was absent after the search repair. | QuizWizz admin source |
| A31 | settings-search-theme.png | ”Previous result”, “Next result”, “Clear search” buttons ~28 px tall, under 44 px. | pass | Controls measured 34 px high; retained as compact WordPress admin navigation, not a primary action. | QuizWizz admin source |
| A32 | settings-preview-player.png | preview stage renders answer options as bare indented text with no radio controls, borders, or option styling. | defect | Preview answer LI elements had no border, background, or custom marker. | QuizWizz admin source |
| A33 | settings-preview-player.png | modal tab strip contains a single “Player” tab, an orphaned one-item tablist occupying a full row. | defect | One Player button occupied a dedicated full-width tab row. | QuizWizz admin source |
| A34 | settings-pdf-print.png | admin bar overlaps the page title. | capture-artifact | Admin bar/title did not intersect under neutralisation. | QuizWizz admin source |
| A35 | settings-pdf-print.png | ”Paper size” cards inconsistent: A4 thumbnail clipped at its left edge inside the card; “Letter” card flush into the right edge. | pass | A4 and Letter cards each measured 570.5×82 inside x213–1362. | QuizWizz admin source |
| A36 | settings-pdf-banner-icon.png | six-icon row overflows, “Palette” cut at the right edge. | pass | Icon grid computed six equal tracks and had no horizontal overflow. | QuizWizz admin source |
| A37 | settings-pdf-banner-icon.png | selected “Magic wand” card breaks the row baseline, top and bottom outside the other five. | pass | Selected card shared the row geometry and remained inside its grid. | QuizWizz admin source |
| A38 | settings-pdf-banner-icon.png | wand glyph in “Built-in icon” touches its label; “Sheet banner” section icon drawn over the heading. | pass | Measured icon-to-label overlap area was 0. | QuizWizz admin source |
| A39 | settings-ai.png | ”Enable AI features” toggle stranded mid-row at ~55% width, inconsistent with the right-aligned toggles in Appearance and Advanced. | pass | Enable row used the full 1180 px panel; control remained within its assigned row. | QuizWizz admin source |
| A40 | settings-ai-expanded.png | right-column inputs overflow: ”)” all clipped. | pass | All numeric inputs ended within x=1362; no document or panel overflow. | QuizWizz admin source |
| A41 | settings-ai-expanded.png | ”2 unsaved changes” badge cut off at the right edge. | pass | Unsaved badge remained inside the 1180 px savebar. | QuizWizz admin source |
| A42 | settings-ai-expanded.png | sticky save bar only ~165 px wide, anchored at x=0, with the caption outside it on the page background. | pass | Savebar measured x182, width1180, and contained both status and actions. | QuizWizz admin source |
| A43 | settings-ai-expanded.png | ”Access & privacy” and “Budget & capacity” headings overlapped by their icons; “Block data collection” / “Allow provider collection” icons touch their labels. | pass | Measured heading/control icon-to-text overlap area was 0. | QuizWizz admin source |
| A44 | settings-general-mobile.png | sticky search field occludes the “Available experiences” description, truncated at “…the site should offer. At least one”. | capture-artifact | At 390 px intro y493 and sticky toolbar y181 did not intersect; screenshot suggested a stitch state. | QuizWizz admin source |
| A45 | settings-general-mobile.png | ”Interface language” select truncates without ellipsis: “Automatic (WordPr”. | pass | At 390 px the select measured 165×56 and displayed Deutsch (DE) without clipping. | QuizWizz admin source |
| A46 | settings-general-mobile.png | ”Preview guest experience” collapses to a bare eye icon with no label at 390 px. | defect | At 390 px the opener was 39×34 and its label computed at font-size:0; only the eye remained visible. | QuizWizz admin source |
| A47 | settings-general-mobile.png | ”Allowed range” label again with no control under it. | pass | Opening Allowed Range exposed all three inputs at 390 px. | QuizWizz admin source |
| A48 | settings-noscript-fallback.png | renders with raw browser default styling: default fieldset/legend borders, stock blue system checkboxes, non-WordPress blue “Save essential settings” button, no admin chrome. | unmeasured | No-JavaScript fallback is a semantic fallback, not a visual-equivalence contract; no CSS-off acceptance baseline exists. | QuizWizz admin source |
| A49 | quiz-list.png | page header clipped at the top of the frame; “Quizzes” and “Add New Quiz” sliced. | capture-artifact | Title y42–84.9 and Add New y50–82 did not intersect the neutralised bar. | QuizWizz admin source |
| A50 | quiz-list.png | ”Questions” column header wraps so its sort arrows drop to a second line, misaligning that header. | defect | Questions TH measured 89.6×36.6 and wrapped its sortable heading. | QuizWizz admin source |
| A51 | quiz-list.png | status readiness inconsistently styled: “Ready” a green pill, “Review” bare orange text with no pill. | pass | Review and Ready both rendered 18 px rounded coloured pills. | QuizWizz admin source |
| A52 | question-list.png | admin bar painted across the middle of the table, occluding the “¿Qué algoritmo de ordenación…” row and orphaning its “Multiple choice” pill. | capture-artifact | Table rows were unobscured after neutralisation. | QuizWizz admin source |
| A53 | question-list.png | question-type pill wraps onto its own second line in most rows but not the first, producing ragged row heights. | pass | Visible question rows were uniformly 81 px; type badges were 87–97.3×30. | QuizWizz admin source |
| A54 | question-list.png | Source column pill wraps “QuizWizz question pack” onto two lines inside a too-narrow pill. | defect | Source badge measured 124.8×33.5 with white-space:normal and two lines. | QuizWizz admin source |
| A55 | quiz-editor-existing.png | horizontal rule under “No questions have been added.” spans only to ~x=530 while the metabox extends to x=780. | defect | Search/empty region measured 720×82.6 inside a 1072 px editor. | QuizWizz admin source |
| A56 | quiz-editor-new.png | same short divider, plus a large unfilled region below it. | defect | Fresh editor reproduced the 720 px region inside a 1072 px editor. | QuizWizz admin source |
| A57 | question-editor-existing.png | admin bar drawn over the page header, slicing “Edit Question” and covering half the “Add New Question” button. | capture-artifact | Editor heading and Add New were unobscured after neutralisation. | QuizWizz admin source |
| A58 | question-editor-existing.png | plus glyph inside “Add choice” overlaps the label. | pass | Add choice icon ended at x228 and text began at x234: 6 px gap. | QuizWizz admin source |
| A59 | question-editor-existing.png | per-choice delete controls ~16 px with no button chrome. | unmeasured | Controls measured 38×38, not the vision-estimated 16 px; destructive-control redesign is outside this pass. | QuizWizz admin source |
| A60 | question-editor-new.png | same admin bar overlap, same fused “+Add choice”, same 16 px trash controls. | capture-artifact | Fresh editor heading was unobscured after neutralisation. | QuizWizz admin source |
| A61 | subjects.png | admin bar painted over the first table row; the “Animals” term’s icon, slug, and count hidden. | capture-artifact | Subjects first row was unobscured after neutralisation. | QuizWizz admin source |
| A62 | subjects.png | in every row the Name link sits several pixels higher than the Description, Slug, and Count cells. | pass | Name centres were 11.1 px above metadata consistently, matching WordPress row-title/actions hierarchy. | QuizWizz admin source |
| A63 | subjects.png | nine child terms (Biology, Mammals, Taxonomy, Movements, Painting, art-architecture, Classical, Instruments, Romantic) show the same generic blank-page placeholder in the Icon column. | pass | All nine terms had named icon content; none used the file fallback SVG. | QuizWizz admin source |
| A64 | subjects.png | captioned as showing the add form, but no add-term form column is present. | unmeasured | Add form exists behind the explicit create toggle; published caption does not define an open-state recipe. | QuizWizz admin source |
| A65 | subjects-icon-picker.png | catalog clipped mid-row at the modal’s bottom edge, slicing the “Exploration” / “Politics” row. | pass | Picker dialog measured 762×762; catalog scrolled internally (1470/567) without viewport clipping. | QuizWizz admin source |
| A66 | subjects-icon-picker.png | ”Use automatic icon” link jammed against that clipped row with no separator or padding. | pass | Clear link had a measured 12 px gap from preceding content. | QuizWizz admin source |
| A67 | subjects-icon-picker.png | stray partial-circle glyph rendered outside the search field’s left border. | pass | Search icon ended at x458 and input began x467: 9 px positive gap. | QuizWizz admin source |
| A68 | subjects-icon-picker.png | icon catalog uses full-width hairline row separators, a table rather than the card grid used by the identical control in settings-pdf-banner-icon.png. | pass | Catalog intentionally used a two-column, 345 px-per-column compact picker grid. | QuizWizz admin source |
| A69 | block-inserter.png | Author value truncated at the panel edge with no ellipsis: “qw_visual_audit_2026072”. | unmeasured | Observed clipping belongs to WordPress core and the deliberately long temporary audit username, not QuizWizz. | WordPress core / fixture prerequisite |
| A70 | block-inserter.png | block tile grid ragged: one-line vs two-line labels, “QuizWizz Subjects” orphaned alone on a second row. | defect | Core inserter placed three tiles on row one and Subjects alone on row two; first tile 90 px high, others 104 px. | locked Gutenberg build/source unavailable on this bench |
| A71 | block-quiz-inspector.png | the “QUIZ” control is an empty bordered box with no placeholder, help text, or visible affordance. | defect | Quiz inspector combobox measured 230×19 with empty value, placeholder, and accessible name. | locked Gutenberg build/source unavailable on this bench |
| A72 | block-builder-inspector.png | inspector exposes no controls at all: only the block title and a collapsed “Advanced” row. | defect | Builder inspector exposed only the core Advanced panel; no plugin controls existed. | locked Gutenberg build/source unavailable on this bench |
| A73 | block-builder-inspector.png | Builder canvas wand icon vertically centred against the two-line description rather than inline with the title, unlike the Quiz block above. | defect | Canvas icon centre aligned to combined title/description: icon y189.8 versus title y164.3 and description y191.5. | locked Gutenberg build/source unavailable on this bench |
| A74 | block-builder-inspector.png | ”Continue” button ~25 px tall. | pass | Continue button measured 74.3×40; standard WordPress compact editor action geometry. | QuizWizz admin source |
| A75 | block-library-inspector.png | play glyph inside each “Play quiz” button touches the label: “▷Play quiz”. | unmeasured | Current library fixture rendered no Play quiz links; required state was absent. | WordPress core / fixture prerequisite |
| A76 | block-library-inspector.png | quiz card internals unaligned; meta lines sit at different baselines across the three cards in a row. | pass | First-row card meta baselines were identical at y184.3 across all three cards. | QuizWizz admin source |
| A77 | block-library-inspector.png | ”SUBJECT (OPTIONAL)” is an empty bordered box with no placeholder; “Show discovery controls” toggle ~16 px. | defect | Library subject combobox measured 230×19 with empty value, placeholder, and accessible name; toggle 32×16. | locked Gutenberg build/source unavailable on this bench |
| A78 | block-subjects-inspector.png | same fused “▷Play quiz” glyph/label in the canvas cards. | unmeasured | Current Subjects fixture rendered no Play quiz links; required state was absent. | WordPress core / fixture prerequisite |
| A79 | plugins.png | QuizWizz row actions broken: “Dashboard” and ”| Deactivate” stacked on separate lines with a stray leading pipe. | defect | Plugin row action markup wrapped Dashboard in a block-level strong; links rendered on separate lines. | QuizWizz admin source |
| A80 | site-health.png | captured with “Results are still loading…” and an active spinner, an incomplete intermediate state. | capture-artifact | Site Health completed: loading class absent; status became “Verbesserungswürdig”; both QuizWizz checks rendered. | QuizWizz admin source |
Step 4 repair measurements
| Leads | Before | After | Result |
|---|---|---|---|
| A01–A04 | ready children occupied 1180 px rows; icon wrapper 1180×22; CTA 171.3×56 with arrow below text | live dashboard grid 42px 502.7px 193.3px; icon 42×42; CTA 193.3×40; arrow entirely inside CTA | pass |
| A13 | type policy display:block; stock 16×16 checkboxes and fused inline labels | display:grid; three 388×66 cards with separate title and description | pass |
| A14–A15 | category owner display:block; cards 1180×172.8; SVG 300×150 | eight-column responsive grid; first card 140.5×57; SVG 18×18 | pass |
| A32–A33 | answer choices had no surface; one-item tablist consumed a full row | choices have solid borders, rgb(252, 251, 253) background, 9×12 px padding and 15 px markers; one-item nav display:none with no blank grid row | pass |
| A46 | mobile opener 39×34 with font-size:0 and hidden label | 176.8×34 with 11.52 px visible label; document remains 390/390 | pass |
| A50 | sortable Questions header 89.6×36.6 and wrapped | 135.8×36.6 with white-space:nowrap; document remains 1600/1600 | pass |
| A54 | source badge 124.8×33.5 and two lines | 141.2×30 with white-space:nowrap; document remains 1600/1600 | pass |
| A55–A56 | editor search/divider 720 px inside 1072 px editor | search/divider and editor both 1072 px; computed max-width:none | pass |
| A79 | block-level strong forced plugin actions onto separate lines | row-action anchor now contains inline text with no strong wrapper | pass |
Locked compiled-block findings A70–A73 and A77 remain release-owner defects. This bench has no canonical block source and must not hand-edit build/; the missing source/toolchain is the explicit prerequisite.
Defensive banner scoping preserved the six-track admin icon grid (repeat(6, minmax(0px, 1fr))). The settings stylesheet parsed 355 rules after the repair, up from 336 after the earlier safe transcription.
Recapture recipes
Derived before capture because the prior audit did not preserve route/action recipes. Every recipe uses cache-disabled Chromium, device scale factor 2, direct PNG output, and the admin-bar neutralisation before full-page capture.
- settings family: open
admin.php?page=qw-settings, activate the named workspace/section, perform any named local control change, and capture the settings root; preview-player additionally opens the guest preview. - dashboard details: open
admin.php?page=qw-dashboard, expand Shortcodes and Tools and system state, then capture full page. - subjects: open
edit-tags.php?taxonomy=qw_subject&post_type=qw_question; picker additionally opens the icon picker. - question list: open
edit.php?post_type=qw_questionand capture the complete table. - block Subjects inspector: open the temporary Gutenberg page, insert/select QuizWizz Subjects, keep the inspector open, and capture the editor viewport.
recaptured:
01-dashboard-navigation,02-dashboard-detailssettings-general,settings-builder,settings-player,settings-appearance,settings-advanced,settings-helpsettings-search-theme,settings-preview-player,settings-pdf-print,settings-pdf-banner-icon,settings-ai,settings-ai-expanded,settings-general-mobilequiz-list,question-list,quiz-editor-existing,quiz-editor-new,subjects,block-subjects-inspector,plugins- all desktop files above are raw 3200 px-wide PNGs; the mobile file is a raw 780 px-wide PNG; zero width mismatches
retained original captures:
03-dashboard-help,settings-noscript-fallback,subjects-icon-picker,block-inserter,block-quiz-inspector,block-builder-inspector,block-library-inspector,question-editor-existing,question-editor-new,site-health,privacy-guide