Bỏ qua tới nội dung

Nền tảng

Trợ năng

Đã đặc tả

Sổ đăng ký nghĩa vụ. Mức ràng buộc là WCAG 2.2 AA. Ba mươi hai nghĩa vụ A1–A32; A29–A32 do iconography.md thêm ngày 2026-09-23. Trang này không phải catalogue WCAG; nó là danh sách ràng buộc ngoại hình mà design thi hành, mỗi cái kèm cách kiểm.

Luật

Luật của sổ đăng ký

Đặt mức WCAG 2.2 AA không khẳng định @nexobox/ui hay apps/nexoframe đang đạt mức đó — đạt hay không là câu hỏi bằng chứng, thuộc 09_delivery/current-state.md, hiện trục evidence vẫn là none.

  1. ID ổn định. A1–A6 giữ nguyên nghĩa và neo anchor. ID mới nối tiếp từ A7. Không bao giờ đánh số lại.
  2. Nghĩa vụ không có cách kiểm thì không phải nghĩa vụ, nó là một mong muốn.
  3. Một nghĩa vụ được định nghĩa ở đúng một nơi. A7 trở đi được định nghĩa đầy đủ trên trang foundation của chúng; bảng dưới đây là mục lục, không phải bản sao thứ hai.

Sổ đăng ký

Sổ đăng ký — ba mươi hai nghĩa vụ

IDNghĩa vụĐịnh nghĩa ởWCAG 2.2
A1Kích thước chạmDưới đây2.5.8 (AA)
A2Bàn phímDưới đây2.1.1 (A)
A3Màu không đứng một mìnhDưới đây1.4.1 (A), 1.4.3 (AA), 1.4.11 (AA)
A4AsyncDưới đây4.1.3 (AA)
A5Tên trợ năngDưới đây4.1.2 (A), 2.5.3 (A)
A6Giảm chuyển độngDưới đây2.3.3 (AAA, kit vẫn theo)
A7Breakpointresponsive—
A8Reflowresponsive1.4.10 (AA)
A9Zoomresponsive1.4.4 (AA)
A10Hướng màn hìnhresponsive1.3.4 (AA)
A11Con trỏ thô thắngdensity2.5.8 (AA)
A12Density thuộc về vùngdensity—
A13Reduced motionmotion2.3.3 (AAA)
A14Không chớpmotion2.3.1 (A)
A15Một hệ chuyển độngmotion—
A16Ring nhìn thấy đượcfocus-and-keyboard2.4.7 (AA)
A17Tiêu điểm không bị chefocus-and-keyboard2.4.11 (AA, mới)
A18Bỏ qua khối lặpfocus-and-keyboard2.4.1 (A)
A19Thứ tự và bẫyfocus-and-keyboard2.4.3 (A), 2.1.2 (A)
A20Trả tiêu điểmfocus-and-keyboard2.4.3 (A)
A21Ngôn ngữ được khai báocontent-and-language3.1.1 (A), 3.1.2 (AA)
A22Nhãn mô tả việccontent-and-language2.4.6 (AA), 2.5.3 (A)
A23Lỗi nói được cách sửacontent-and-language3.3.1 (A), 3.3.3 (AA)
A24Trợ giúp nhất quáncontent-and-language3.2.6 (A, mới)
A25Không bắt buộc phải kéoDưới đây2.5.7 (AA, mới)
A26Không bắt nhập lạiDưới đây3.3.7 (A, mới)
A27Xác thực không đố trí nhớDưới đây3.3.8 (AA, mới)
A28Cấu trúc đọc được bằng máyDưới đây1.3.1 (A), 4.1.2 (A)
A29Một bộ iconiconography—
A30Icon mặc định là trang tríiconography1.1.1 (A), 4.1.2 (A)
A31Cỡ và nét icon đến từ tokeniconography—
A32Vùng chạm không phải cỡ iconiconography2.5.8 (AA)

A1

A1 Kích thước chạm

Sàn ở con trỏ thô là --nf-foundation-size-touch-target (44px). Chiều cao Button là --nf-component-button-height cho md. Sàn tuyệt đối WCAG 2.2 AA 2.5.8 đặt 24 × 24 CSS px — không size nào, không density nào được xuống dưới mức đó. Button đặt chiều cao tối thiểu và không đặt bề rộng tối thiểu, nên nút chỉ có icon phải được kiểm cả hai trục.

Kiểm. Đo hộp điều khiển trên trang live, cả bề rộng và chiều cao, so với token đọc lúc chạy. Bật giả lập cảm ứng để kiểm nhánh con trỏ thô.

A2

A2 Bàn phím

Một điều khiển là <button>, <a> hoặc input thật. Tiêu điểm nhìn thấy được. Tab di chuyển. Escape trả tiêu điểm khi overlay đóng.

Kiểm. Tab qua probe trên trang live. Nó không giữ tiêu điểm và không thêm tabindex.

A3

A3 Màu không đứng một mình

Màu không bao giờ là tín hiệu trạng thái duy nhất. Focus-visible là một hình — ring --nf-semantic-focus-ring. Chữ thường đạt 4.5:1; chữ lớn đạt 3:1. Thành phần giao diện và đồ hoạ mang nghĩa — viền input, icon trạng thái, ring tiêu điểm — đạt 3:1 so với nền liền kề.

Kiểm. Bản xám hoá trên trang live giữ mọi trạng thái nhận ra được bằng chữ. Cặp màu tính bằng công thức luminance, không ước lượng bằng mắt.

A4

A4 Async

Ranh giới chạy qua cái gì đang bận, không qua component nào. Thuộc về primitive:trạng thái bận của một điều khiển người dùng vừa kích hoạt — Button nhận loading, giữ nhãn, đặt aria-busy="true" và disabled. Thuộc về pattern cha: rỗng, lỗi, và trạng thái đang tải của một vùng.

Cảnh báo

Đừng gắn rỗng, hoặc lỗi, hoặc trạng thái tải của cả vùng lên Button để một màn hình trông như đã hoàn thiện. Chỉ loading của chính điều khiển đó chuyển về primitive.

A5

A5 Tên trợ năng

Điều khiển chỉ có icon phải có tên trợ năng (aria-label). Nhãn nhìn thấy của Button là children của nó. Nếu nhãn nhìn thấy là Lưu thì tên trợ năng phải chứa Lưu(Label in Name).

Kiểm. Trang live có một nút có nhãn và một nút icon có tên. Nó không đặt điều khiển icon không tên vào thứ tự tab.

A6

A6 Giảm chuyển động

prefers-reduced-motion: reduce đưa thời lượng chuyển động về 0. Không thêm hệ chuyển động thứ hai. Ngoại lệ duy nhất: chỉ báo loading của Button dài ra thay vì dừng.

A25

A25 Không bắt buộc phải kéo

Mọi chức năng dùng thao tác kéo phải có đường thay thế bằng một cú bấm đơn. Kéo là bổ sung, không bao giờ là đường duy nhất — WCAG 2.2 AA 2.5.7. Drawer mobile đóng được bằng nút, không chỉ bằng vuốt. Slider có ô nhập số. Sắp xếp lại danh sách có nút lên / xuống.

Kiểm. Làm mọi việc trên trang chỉ bằng Tab và Enter. Cái gì không làm được là vi phạm A25.

A26

A26 Không bắt nhập lại

Thông tin người dùng đã nhập trong cùng một quy trình không được hỏi lại, trừ khi việc hỏi lại là bản chất của việc — WCAG 2.2 mức A 3.3.7. Biểu mẫu nhiều bước điền sẵn dữ liệu bước trước.

Kiểm. Đi hết một quy trình nhiều bước. Đếm số lần cùng một dữ kiện bị hỏi.

A27

A27 Xác thực không đố trí nhớ

Bước xác thực không được đòi một phép thử nhận thức — nhớ mật khẩu, giải đố, chép lại ký tự — mà không có đường thay thế. Không chặn dán vào ô mật khẩu, không tắt trình quản lý mật khẩu. Luồng xác thực là hành vi, thuộc docs/; ở đây chỉ ghi ràng buộc ngoại hình.

Kiểm. Dán vào mọi ô xác thực. Nếu bị chặn, đó là vi phạm.

A28

A28 Cấu trúc đọc được bằng máy

Quan hệ nhìn thấy bằng mắt phải tồn tại trong đánh dấu: tiêu đề là <h1>–<h6> không nhảy bậc, danh sách là <ul> / <ol>, bảng có <th> với scope, biểu mẫu có <label> nối bằng for. Landmark header, nav có nhãn, mainxuất hiện đúng một lần ở cấp cao nhất.

Thông tin

Vi phạm đã biết, đã đóng cùng ngày. Sáng 2026-09-23 apps/nexoframe không có <main> và không có skip link. Cả hai đã được sửa trong cùng đợt nâng cấp mở trang này.

Kiểm. Đọc cây accessibility trong devtools, không đọc CSS. Liệt kê landmark; liệt kê tiêu đề theo bậc và xác nhận không nhảy bậc.

Ranh giới

Trang này không khẳng định điều gì

Không khẳng định đạt WCAG 2.2 AA. Mức là mục tiêu ràng buộc. Chưa có kiểm toán nào; trục evidence là none. Bất kỳ tuyên bố nào rằng một bề mặt sản phẩm "đã dễ tiếp cận" vẫn phải qua docs/09_delivery/current-state.md.

Chưa quyết

Open questions

QuestionOwnerResolves when
Mức WCAG nào ràng buộc?—Đóng 2026-09-23 theo DS-003. WCAG 2.2 AA
Có tiêu chuẩn pháp lý nào chồng lên (EN 301 549, ADA) không?nexoboxvn@gmail.comMột hợp đồng hoặc một thị trường đặt tên nó
Ai chạy kiểm toán, và trên bề mặt nào?nexoboxvn@gmail.comMột bề mặt sản phẩm thật tồn tại để kiểm toán
NexoFrame — design catalogue