Skip to content

Bảng điểm: learn /ielts/reading (SRC-1303) ​

Màn: trang kỹ năng Reading của sân luyện IELTS (cùng khuôn với /ielts/listening, /ielts/writing, /ielts/speaking). Mã nguồn: apps/learn/src/ielts/Reading.tsx (ReadingHome), anh em Listening.tsx, Production.tsx. Chuẩn: focus-and-load.md. Skill: /ui-audit-25. Bản ngắn: chấm qua mã + Playwright 375 x 812 và 1440 x 900 với mockApi.

LượtNgàyĐiểmGhi chú
0 (trước khi sửa)09.10.202642/50đo bằng Playwright
1 (sau lô 1)09.10.202645/50lô 1 dưới đây
2 (sau lô 2)09.10.202650/50lô 2 dưới đây; đo lại bằng Playwright 375/1440

Hai câu bắt buộc ​

  • Nhìn đâu trước? (lượt 0) không có h1: thứ đầu tiên là thẻ "Where am I strong?" (10 dòng sub-skill). Ở 375px thẻ ấy chiếm trọn tầm nhìn đầu; ô chính "Keep going / Read a passage" ở dưới nếp gấp (F3). Ở 1440px ô chính ở y=696, dưới thẻ mastery và vạch "What to do now".
  • Bao nhiêu thứ? (lượt 0) 375px: một khối (thẻ mastery) lấp đầy màn. Vệt đường dẫn "Reading" là chỗ duy nhất nói tên trang.
  • Sau lô 1: h1 "Reading" (y=174 ở 375px), vệt dừng ở gốc nên tên trang nói một lần. Ô chính vẫn dưới nếp gấp ở 375px (xem "Còn lại").
  • Sau lô 2: ở 375px mắt đi h1 "Reading" → ô chính "Keep going" (một nút/ô tô màu) → thẻ mastery → dòng video gập. Tầm nhìn đầu có 2 khối (h1, ô chính) cộng phần đầu thẻ mastery. Ở 1440px thứ tự không đổi so với lượt 1. Không gì nói hai lần.

25 yếu tố ​

#Yếu tốLượt 0Lượt 1Lượt 2Bằng chứng / luật
1Information Architecturepartialpasspasstên trang chỉ ở vệt; nay h1 "Reading" và vệt không lặp (L5), e2e ieltsHubsLayout.spec.ts
2Navigationpasspasspassthanh bước sáng "Practise"
3Layoutpasspasspasskhông thẻ trạng thái ở trang luyện (F7)
4Visual Hierarchyfailpartialpassở 375px ô chính "Keep going" ngay dưới h1, trước thẻ mastery (F3, chủ dự án quyết 09.10.2026); 1440px giữ thứ tự cũ; e2e ieltsAuditPass3.spec.ts so y ở cả hai cỡ
5Responsive Designpartialpartialpass375px: tầm nhìn đầu là h1 + ô chính (data-part=hub-primary-phone), bản trong lưới hidden lg:block nên chỉ một ô chính hiện (e2e đếm [data-hub-primary] hiện = 1)
6Interaction Patternpasspasspassô HubTile cả ô là link
7User Flowpartialpartialpassviệc chính bấm được không cần cuộn ở 375px
8Affordancepasspasspassô khoá nói vì sao khoá
9Feedbackpasspasspassthanh mastery có nhãn "Solid"
10Statepasspasspasskhoá "Word list" theo mastery, có câu đếm
11Design Systempasspasspassshadcn, token
12ComponentspasspasspassHubTile, MasteryCard, ExamPracticeBand dùng chung bốn trang
13UI Patternspasspasspasshub ba ô + dải luyện đề
14Formspasspasspasskhông có form
15Data Displaypasspasspasssố cụm, số bài có đơn vị
16Onboardingpartialpartialpassvideo gập thành một dòng (IeltsClip bỏ shown, e2e video = 0); tour whenInView: chỉ tự mở khi đỉnh thẻ mastery đã vào tầm nhìn, không tự cuộn (e2e scrollY = 0 sau 1,2s; cuộn tới thẻ thì tour mở và scrollY không đổi)
17Empty Statepasspasspasschưa có bài thì dẫn sang danh sách cụm
18Error HandlingpartialpartialpassuseSkillPageState + state của cụm: hỏng thì dòng role=alert tiếng Việt "Chưa tải được dữ liệu" + nút "Thử lại" (e2e chặn API, bấm thử lại, dòng biến mất)
19Accessibilitypartialpasspasskhông h1 cho trình đọc màn hình → có một h1
20Personalizationpasspasspassbài kế tiếp theo server
21Typographypasspasspassh1 text-2xl một dòng
22Colorpasspasspassmột màu nhấn
23Spacingpasspasspassthang
24Iconographypasspasspassicon lucide
25MotionpasspasspassFadeIn, Stagger từ preset

Lô đã sửa ​

LôNgàyPRYếu tốThay đổi
109.10.2026session/ui-audit-pass21, 4 (một phần), 19h1 tiếng Anh ở cả bốn trang kỹ năng (Reading, Listening, Writing practice, Speaking practice); vệt dừng ở gốc để không lặp
209.10.2026session/ui-audit-pass34, 5, 7, 16, 18chủ dự án quyết 09.10.2026: dưới lg ô chính lên trước thẻ mastery (PrimaryFirstOnPhone), desktop giữ nguyên; video gập; tour whenInView không tự cuộn; dòng lỗi + "Thử lại". Cùng sửa ở Listening, Writing practice, Speaking practice (chung Hub.tsx)

Còn lại ​

Không còn yếu tố partial hay fail.

  1. Về h1: lô 1 đưa h1 lại (SRC-878 từng bỏ nó vì lặp vệt). Vệt nay không lặp tên trang và h1 một dòng text-2xl; nếu chủ dự án vẫn muốn bỏ hẳn tiêu đề thì đổi ieltsHubsLayout.spec.ts và ieltsExamParts.spec.ts.
  2. Ở 375px ô chính có HAI bản trong DOM (một bản lg:hidden dưới h1, một bản hidden lg:block trong lưới), chỉ một bản hiện ở mỗi cỡ màn nên trình đọc màn hình chỉ gặp một. Chọn cách này thay vì order CSS để thứ tự DOM khớp thứ tự nhìn (F7).
  3. Dòng video gập nay gập ở cả desktop, không chỉ ở điện thoại: một video bày sẵn vẫn tranh chỗ với việc chính ở mọi cỡ màn.