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 damage
  • defect: the live surface reproduces measurable damage
  • capture-artifact: the image pipeline or capture state created the appearance
  • unmeasured: 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
IDAssetLeadVerdictRepeated live evidenceOwner / constraint
A0101-dashboard-navigation.png”Starter library ready” and its description concatenated with no separator: “Starter library readyAll four editable starter quizzes are installed.”defectReady banner children occupied full 1180 px rows; icon wrapper 1180×22; CTA 171.3×56 with arrow below label.QuizWizz admin source
A0201-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.defectCTA occupied 171.3×56 and arrow was at y505 below text; banner flow overlapped its intended row.QuizWizz admin source
A0301-dashboard-navigation.pngcheckmark bullet for “Starter library ready” sits on its own line above the text, unaligned with the inline ✓ bullets of the other steps.defectReady icon wrapper was 1180×22 instead of the declared 42 px grid track.QuizWizz admin source
A0402-dashboard-details.pngsame run-on label and same overlapping button, so not a one-off capture artifact.defectSecond capture reproduced the same full-row child geometry.QuizWizz admin source
A05settings-general.pngadmin bar overlaps the page title; “QuizWizz Settings” sliced horizontally.capture-artifactAdmin bar/title did not intersect after the mandated absolute-bar capture neutralisation.QuizWizz admin source
A06settings-general.png”All changes saved” badge cut off at the right viewport edge.passSaved badge remained inside toolbar and viewport on two loads.QuizWizz admin source
A07settings-general.pngevery workspace tab icon collides with its label with zero gap (General, Builder, Player, Appearance, PDF & Print, AI, Advanced, Help).passAll eight tab icon-to-label gaps measured 6 px.QuizWizz admin source
A08settings-general.pngeye icon inside “Preview guest experience” overlaps the “P”.passPreview opener icon/text overlap area was 0; measured gap 0 px without collision.QuizWizz admin source
A09settings-general.pngsection heading icons overlap their headings (Available experiences, Quiz size, Content languages, QuizWizz interface, Difficulty choices).passSection heading icon gaps measured 8 px.QuizWizz admin source
A10settings-general.png”Allowed range” label rendered with no control beneath it, ~70 px dead space; same void between the language cards and “Difficulty choices”.passAllowed Range is a details control; opening it exposed all three controls.QuizWizz admin source
A11settings-general.pngContent languages card row overflows, “Español” clipped; Difficulty choices clips “Hard”; “Increasing” wraps alone onto a second row.passLanguage and difficulty grids stayed within their container; document width equalled viewport.QuizWizz admin source
A12settings-general.pngleft admin sidebar absent, content flush at x=0, “General” tab icon sliced by the left edge.capture-artifactSidebar measured x0–160 and settings content began x182.QuizWizz admin source
A13settings-builder.png”Question-pool formats” checkbox row renders as one overflowing outlined strip with label and description fused.defectActual .qwizz-type-policy computed display:block; three 16×16 stock checkboxes and inline 15 px labels.QuizWizz admin source
A14settings-builder.png”Category availability” renders as a single-column stack of ~70 px full-width pill cards instead of a grid.defectActual owner is .qwizz-category-admin; computed display:block; 11 cards each 1180×172.8.QuizWizz admin source
A15settings-builder.pngeach category card’s icon drawn outside the card, flush against the left viewport edge.defectCategory SVGs had no intrinsic dimensions and rendered 300×150.QuizWizz admin source
A16settings-builder.pngadmin bar rendered mid-page, painted across the “Surprise me” / “Science” cards.capture-artifactMid-page bar disappeared under the neutralised capture method.QuizWizz admin source
A17settings-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.passBoth exposure rows ended within x=1362; right segments were fully visible.QuizWizz admin source
A18settings-builder.pnglarge blank band where the search field and workspace tab strip should be; tab strip missing.capture-artifactLive toolbar and tabs were present; blank band was stitched-capture damage.QuizWizz admin source
A19settings-player.png”After an answer” radio group renders as outlined boxes with label and description fused, wrapping into the “Feedback delay (milliseconds)” label.passRadio cards remained inside their panel with separate b/small content and no collision.QuizWizz admin source
A20settings-player.png”Completion actions” toggles (Retry, New quiz, Print, Share) sliced vertically by the right viewport edge.passAll completion switches remained inside their grid column.QuizWizz admin source
A21settings-appearance.pngadmin bar rendered mid-page between the subtitle and the search field.capture-artifactMid-page bar disappeared under the neutralised capture method.QuizWizz admin source
A22settings-appearance.png”Answer prefix” and “Printable question columns” options render as bare outlined label boxes with no card or segmented-control styling.passControls were consistently rendered as the configured option-card/segment treatment.QuizWizz admin source
A23settings-appearance.png”Show question count”, “Repeat question text”, “Include explanations” toggles clipped at the right edge; the latter two touch.passAll three toggles remained inside the panel with no overlap.QuizWizz admin source
A24settings-appearance.png”Saved with every quiz” fused with its description on one line.passLabel and description occupied distinct DOM descendants; no geometric overlap.QuizWizz admin source
A25settings-appearance.pngPDF theme card row overflows, “Aqua” cut at the right edge; bottom eye icon drawn over the helper text.passTheme cards remained within the 1180 px panel; eye icon did not overlap helper text.QuizWizz admin source
A26settings-advanced.pngadmin bar mid-page above the tab strip; “Data & Lifecycle” heading sliced by the tab row.capture-artifactMid-page bar disappeared and heading remained intact under neutralisation.QuizWizz admin source
A27settings-advanced.pngright column overflows: “Full portability” description cut mid-sentence; “Import portability JSON”, “Import draft quiz”, “Create draft”, “Question language” all clipped.passAdvanced panels and fields ended within x=1362; page width equalled viewport.QuizWizz admin source
A28settings-advanced.pngshield icons drawn on top of the text they precede.passMeasured icon/text overlap area was 0.QuizWizz admin source
A29settings-search-theme.pnglast result garbles the matched word by splitting the highlight: “selectable theme s.”passHighlight split preserved the full word; no garbled text after the search repair.QuizWizz admin source
A30settings-search-theme.pngfirst result’s breadcrumb repeats itself: “PDF & PRINT › PDF & PRINT”.passBreadcrumb duplication was absent after the search repair.QuizWizz admin source
A31settings-search-theme.png”Previous result”, “Next result”, “Clear search” buttons ~28 px tall, under 44 px.passControls measured 34 px high; retained as compact WordPress admin navigation, not a primary action.QuizWizz admin source
A32settings-preview-player.pngpreview stage renders answer options as bare indented text with no radio controls, borders, or option styling.defectPreview answer LI elements had no border, background, or custom marker.QuizWizz admin source
A33settings-preview-player.pngmodal tab strip contains a single “Player” tab, an orphaned one-item tablist occupying a full row.defectOne Player button occupied a dedicated full-width tab row.QuizWizz admin source
A34settings-pdf-print.pngadmin bar overlaps the page title.capture-artifactAdmin bar/title did not intersect under neutralisation.QuizWizz admin source
A35settings-pdf-print.png”Paper size” cards inconsistent: A4 thumbnail clipped at its left edge inside the card; “Letter” card flush into the right edge.passA4 and Letter cards each measured 570.5×82 inside x213–1362.QuizWizz admin source
A36settings-pdf-banner-icon.pngsix-icon row overflows, “Palette” cut at the right edge.passIcon grid computed six equal tracks and had no horizontal overflow.QuizWizz admin source
A37settings-pdf-banner-icon.pngselected “Magic wand” card breaks the row baseline, top and bottom outside the other five.passSelected card shared the row geometry and remained inside its grid.QuizWizz admin source
A38settings-pdf-banner-icon.pngwand glyph in “Built-in icon” touches its label; “Sheet banner” section icon drawn over the heading.passMeasured icon-to-label overlap area was 0.QuizWizz admin source
A39settings-ai.png”Enable AI features” toggle stranded mid-row at ~55% width, inconsistent with the right-aligned toggles in Appearance and Advanced.passEnable row used the full 1180 px panel; control remained within its assigned row.QuizWizz admin source
A40settings-ai-expanded.pngright-column inputs overflow: ”)” all clipped.passAll numeric inputs ended within x=1362; no document or panel overflow.QuizWizz admin source
A41settings-ai-expanded.png”2 unsaved changes” badge cut off at the right edge.passUnsaved badge remained inside the 1180 px savebar.QuizWizz admin source
A42settings-ai-expanded.pngsticky save bar only ~165 px wide, anchored at x=0, with the caption outside it on the page background.passSavebar measured x182, width1180, and contained both status and actions.QuizWizz admin source
A43settings-ai-expanded.png”Access & privacy” and “Budget & capacity” headings overlapped by their icons; “Block data collection” / “Allow provider collection” icons touch their labels.passMeasured heading/control icon-to-text overlap area was 0.QuizWizz admin source
A44settings-general-mobile.pngsticky search field occludes the “Available experiences” description, truncated at “…the site should offer. At least one”.capture-artifactAt 390 px intro y493 and sticky toolbar y181 did not intersect; screenshot suggested a stitch state.QuizWizz admin source
A45settings-general-mobile.png”Interface language” select truncates without ellipsis: “Automatic (WordPr”.passAt 390 px the select measured 165×56 and displayed Deutsch (DE) without clipping.QuizWizz admin source
A46settings-general-mobile.png”Preview guest experience” collapses to a bare eye icon with no label at 390 px.defectAt 390 px the opener was 39×34 and its label computed at font-size:0; only the eye remained visible.QuizWizz admin source
A47settings-general-mobile.png”Allowed range” label again with no control under it.passOpening Allowed Range exposed all three inputs at 390 px.QuizWizz admin source
A48settings-noscript-fallback.pngrenders with raw browser default styling: default fieldset/legend borders, stock blue system checkboxes, non-WordPress blue “Save essential settings” button, no admin chrome.unmeasuredNo-JavaScript fallback is a semantic fallback, not a visual-equivalence contract; no CSS-off acceptance baseline exists.QuizWizz admin source
A49quiz-list.pngpage header clipped at the top of the frame; “Quizzes” and “Add New Quiz” sliced.capture-artifactTitle y42–84.9 and Add New y50–82 did not intersect the neutralised bar.QuizWizz admin source
A50quiz-list.png”Questions” column header wraps so its sort arrows drop to a second line, misaligning that header.defectQuestions TH measured 89.6×36.6 and wrapped its sortable heading.QuizWizz admin source
A51quiz-list.pngstatus readiness inconsistently styled: “Ready” a green pill, “Review” bare orange text with no pill.passReview and Ready both rendered 18 px rounded coloured pills.QuizWizz admin source
A52question-list.pngadmin bar painted across the middle of the table, occluding the “¿Qué algoritmo de ordenación…” row and orphaning its “Multiple choice” pill.capture-artifactTable rows were unobscured after neutralisation.QuizWizz admin source
A53question-list.pngquestion-type pill wraps onto its own second line in most rows but not the first, producing ragged row heights.passVisible question rows were uniformly 81 px; type badges were 87–97.3×30.QuizWizz admin source
A54question-list.pngSource column pill wraps “QuizWizz question pack” onto two lines inside a too-narrow pill.defectSource badge measured 124.8×33.5 with white-space:normal and two lines.QuizWizz admin source
A55quiz-editor-existing.pnghorizontal rule under “No questions have been added.” spans only to ~x=530 while the metabox extends to x=780.defectSearch/empty region measured 720×82.6 inside a 1072 px editor.QuizWizz admin source
A56quiz-editor-new.pngsame short divider, plus a large unfilled region below it.defectFresh editor reproduced the 720 px region inside a 1072 px editor.QuizWizz admin source
A57question-editor-existing.pngadmin bar drawn over the page header, slicing “Edit Question” and covering half the “Add New Question” button.capture-artifactEditor heading and Add New were unobscured after neutralisation.QuizWizz admin source
A58question-editor-existing.pngplus glyph inside “Add choice” overlaps the label.passAdd choice icon ended at x228 and text began at x234: 6 px gap.QuizWizz admin source
A59question-editor-existing.pngper-choice delete controls ~16 px with no button chrome.unmeasuredControls measured 38×38, not the vision-estimated 16 px; destructive-control redesign is outside this pass.QuizWizz admin source
A60question-editor-new.pngsame admin bar overlap, same fused “+Add choice”, same 16 px trash controls.capture-artifactFresh editor heading was unobscured after neutralisation.QuizWizz admin source
A61subjects.pngadmin bar painted over the first table row; the “Animals” term’s icon, slug, and count hidden.capture-artifactSubjects first row was unobscured after neutralisation.QuizWizz admin source
A62subjects.pngin every row the Name link sits several pixels higher than the Description, Slug, and Count cells.passName centres were 11.1 px above metadata consistently, matching WordPress row-title/actions hierarchy.QuizWizz admin source
A63subjects.pngnine child terms (Biology, Mammals, Taxonomy, Movements, Painting, art-architecture, Classical, Instruments, Romantic) show the same generic blank-page placeholder in the Icon column.passAll nine terms had named icon content; none used the file fallback SVG.QuizWizz admin source
A64subjects.pngcaptioned as showing the add form, but no add-term form column is present.unmeasuredAdd form exists behind the explicit create toggle; published caption does not define an open-state recipe.QuizWizz admin source
A65subjects-icon-picker.pngcatalog clipped mid-row at the modal’s bottom edge, slicing the “Exploration” / “Politics” row.passPicker dialog measured 762×762; catalog scrolled internally (1470/567) without viewport clipping.QuizWizz admin source
A66subjects-icon-picker.png”Use automatic icon” link jammed against that clipped row with no separator or padding.passClear link had a measured 12 px gap from preceding content.QuizWizz admin source
A67subjects-icon-picker.pngstray partial-circle glyph rendered outside the search field’s left border.passSearch icon ended at x458 and input began x467: 9 px positive gap.QuizWizz admin source
A68subjects-icon-picker.pngicon 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.passCatalog intentionally used a two-column, 345 px-per-column compact picker grid.QuizWizz admin source
A69block-inserter.pngAuthor value truncated at the panel edge with no ellipsis: “qw_visual_audit_2026072”.unmeasuredObserved clipping belongs to WordPress core and the deliberately long temporary audit username, not QuizWizz.WordPress core / fixture prerequisite
A70block-inserter.pngblock tile grid ragged: one-line vs two-line labels, “QuizWizz Subjects” orphaned alone on a second row.defectCore 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
A71block-quiz-inspector.pngthe “QUIZ” control is an empty bordered box with no placeholder, help text, or visible affordance.defectQuiz inspector combobox measured 230×19 with empty value, placeholder, and accessible name.locked Gutenberg build/source unavailable on this bench
A72block-builder-inspector.pnginspector exposes no controls at all: only the block title and a collapsed “Advanced” row.defectBuilder inspector exposed only the core Advanced panel; no plugin controls existed.locked Gutenberg build/source unavailable on this bench
A73block-builder-inspector.pngBuilder canvas wand icon vertically centred against the two-line description rather than inline with the title, unlike the Quiz block above.defectCanvas 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
A74block-builder-inspector.png”Continue” button ~25 px tall.passContinue button measured 74.3×40; standard WordPress compact editor action geometry.QuizWizz admin source
A75block-library-inspector.pngplay glyph inside each “Play quiz” button touches the label: “▷Play quiz”.unmeasuredCurrent library fixture rendered no Play quiz links; required state was absent.WordPress core / fixture prerequisite
A76block-library-inspector.pngquiz card internals unaligned; meta lines sit at different baselines across the three cards in a row.passFirst-row card meta baselines were identical at y184.3 across all three cards.QuizWizz admin source
A77block-library-inspector.png”SUBJECT (OPTIONAL)” is an empty bordered box with no placeholder; “Show discovery controls” toggle ~16 px.defectLibrary subject combobox measured 230×19 with empty value, placeholder, and accessible name; toggle 32×16.locked Gutenberg build/source unavailable on this bench
A78block-subjects-inspector.pngsame fused “▷Play quiz” glyph/label in the canvas cards.unmeasuredCurrent Subjects fixture rendered no Play quiz links; required state was absent.WordPress core / fixture prerequisite
A79plugins.pngQuizWizz row actions broken: “Dashboard” and ”| Deactivate” stacked on separate lines with a stray leading pipe.defectPlugin row action markup wrapped Dashboard in a block-level strong; links rendered on separate lines.QuizWizz admin source
A80site-health.pngcaptured with “Results are still loading…” and an active spinner, an incomplete intermediate state.capture-artifactSite Health completed: loading class absent; status became “Verbesserungswürdig”; both QuizWizz checks rendered.QuizWizz admin source

Step 4 repair measurements

LeadsBeforeAfterResult
A01–A04ready children occupied 1180 px rows; icon wrapper 1180×22; CTA 171.3×56 with arrow below textlive dashboard grid 42px 502.7px 193.3px; icon 42×42; CTA 193.3×40; arrow entirely inside CTApass
A13type policy display:block; stock 16×16 checkboxes and fused inline labelsdisplay:grid; three 388×66 cards with separate title and descriptionpass
A14–A15category owner display:block; cards 1180×172.8; SVG 300×150eight-column responsive grid; first card 140.5×57; SVG 18×18pass
A32–A33answer choices had no surface; one-item tablist consumed a full rowchoices 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 rowpass
A46mobile opener 39×34 with font-size:0 and hidden label176.8×34 with 11.52 px visible label; document remains 390/390pass
A50sortable Questions header 89.6×36.6 and wrapped135.8×36.6 with white-space:nowrap; document remains 1600/1600pass
A54source badge 124.8×33.5 and two lines141.2×30 with white-space:nowrap; document remains 1600/1600pass
A55–A56editor search/divider 720 px inside 1072 px editorsearch/divider and editor both 1072 px; computed max-width:nonepass
A79block-level strong forced plugin actions onto separate linesrow-action anchor now contains inline text with no strong wrapperpass

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_question and 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-details
  • settings-general, settings-builder, settings-player, settings-appearance, settings-advanced, settings-help
  • settings-search-theme, settings-preview-player, settings-pdf-print, settings-pdf-banner-icon, settings-ai, settings-ai-expanded, settings-general-mobile
  • quiz-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