# P5 blind browser QA — showcase/index.html

- File: `/Users/thinhkhuat/in-PROD/MY-WORKBENCH/Diep.Wealth/content/chung-cu-so-huu-50-nam/showcase/index.html`
- Tool: agent-browser (real Chromium), session `p5qa`, desktop 1440×900 and mobile 390×844
- Date: 2026-08-26

## Defect list

1. Source links below 44px touch-target height. What I did: measured every interactive element at 390×844. What I saw: the two inline source links `luatvietnam.vn` and `vnexpress.net` are 16px tall (93px / 87px wide). Where: footer source-attribution line at the bottom of the page. All other controls measured ≥44px (theme-btn 44, myth rows 66–135, quiz options 56–82, report link 46).

No other defects observed. Scope actually checked (facts, no quality verdict):

- Console + page errors: empty at open, after all interactions, and at close. Zero entries.
- Desktop 1440×900: full-page height 7397px, scrollWidth exactly 1440 (no horizontal overflow). Slow scroll top→bottom across 9 viewport screenshots plus full-page capture: no overlapping text, no clipped content observed.
- Vietnamese diacritics: 0 U+FFFD tofu chars and 0 ASCII-only Vietnamese words in `document.body.innerText` (regex sweep for "chung cu/so huu/hieu lam/co the/khong/duoc/..." patterns); visual read of all screenshots showed complete tone marks.
- 5 numbered rows ("Năm hiểu lầm hay gặp", `.myth-btn`, aria-controls m1–m5): all 5 opened on click (aria-expanded true, content panels with SAI / CÓ CƠ SỞ badges render). Independent toggles — multiple rows stay open simultaneously. None inert.
- Quiz: Q1 (2 options) → "Câu tiếp" → Q2 (3 options) → Q3 (3 options) → button relabels to "Xem kết quả" → result screen "Gần rồi: 2/3. Còn một chiếc đồng hồ đang bị hiểu nhầm, kéo lên xem lại phần hai chiếc đồng hồ." (consistent with my 2-correct answers). Restart control "Làm lại" (`.quiz-re`) returns to Q1 with all options unpressed, progress 1/3. Selected option shows distinct border (oklch 0.46 vs 0.25 unselected).
- Theme toggle (`#themeBtn`): initial label "Hệ thống" (attr `data-theme="system"`); click 1 → "Sáng"/light, body bg oklch(0.965 0.006 85); click 2 → "Tối"/dark, body bg oklch(0.15 0.012 30), text oklch(0.93); click 3 → "Hệ thống"/system. Contrast sweep in dark over 81 text elements: 0 with lightness delta < 0.32 vs background. Dark-mode screenshots at top, mid (misconception rows), and bottom (CTA): all text readable. Theme persists across reload (localStorage).
- Mobile 390×844: page height 10061px, scrollWidth 390 = viewport (no horizontal scroll). 0 elements extending past viewport bounds; 0 inner horizontal scrollers. 9-screenshot walk: no clipped text, no overlapping elements.
- End-of-page link "Đọc báo cáo đầy đủ": `href="../bao-cao.md"`, no target attr. Target exists on disk: `/Users/thinhkhuat/in-PROD/MY-WORKBENCH/Diep.Wealth/content/chung-cu-so-huu-50-nam/bao-cao.md` (13.8K).
- Animations: after reload + instant fast scroll to bottom, then fast jumps to 3000/5500, then back to top — 0 elements in viewport stuck at opacity <0.05 or zero-scale transform; 0 elements document-wide with computed opacity 0 after returning to top.

## Console error transcript

None — `agent-browser console` and `agent-browser errors` returned empty output at page open and after the full interaction session.

## Notes / not fully verified

- FOUC ("unstyled flash" on first paint) was checked passively: all screenshots taken ~1s after load/reload showed fully styled content. No dedicated early-frame (<300ms) capture was taken, so a sub-second flash cannot be fully ruled out.
- The 5 myth-row buttons' accessible names end with a literal quote character (e.g. `01 "Chung cư giờ chỉ sở hữu 50 năm thôi."`), which broke agent-browser's ref-based locator (`scrollIntoViewIfNeeded` timeout). Worked around via CSS selectors. Testing-tool artifact, not a rendering defect.

Status: DONE
Summary: Full desktop + mobile sweep of the showcase page found one deviation (two 16px-tall inline source links vs the 44px touch guideline); console is clean, all interactions (5 myth rows, 3-question quiz with restart, 3-state theme cycle) function, link target exists, no stuck-invisible content after fast scrolling.
Concerns/Blockers: none
