Accessibility (a11y) là phương pháp tạo ra các ứng dụng mà người khuyết tật có thể sử dụng. Theo Tổ chức Y tế Thế giới, hơn 1,3 tỷ người (16% dân số) đang sống với một số dạng khuyết tật. WHO (báo cáo 2024) nhấn mạnh rằng khả năng tiếp cận kỹ thuật số đang trở nên cực kỳ quan trọng. Hãy tìm hiểu cách đảm bảo khả năng tiếp cận trên iOS và Android cũng như các tiêu chuẩn hiện có.
Những điểm chính
Accessibility (viết tắt a11y — chữ a + 11 chữ cái + y) là thuộc tính của một sản phẩm có thể được sử dụng bởi người khuyết tật. Trong bối cảnh ứng dụng di động, điều này có nghĩa là: hỗ trợ trình đọc màn hình (VoiceOver, TalkBack), kích thước văn bản phù hợp, độ tương phản cao, thứ tự tiêu điểm chính xác cho điều hướng bàn phím và không có các yếu tố hoạt hình gây chóng mặt.
Tính hòa nhập không chỉ là nghĩa vụ đạo đức mà còn là nghĩa vụ pháp lý. Nhiều quốc gia có luật về khả năng tiếp cận kỹ thuật số: ADA (Mỹ), Section 508, European Accessibility Act (EU, bắt buộc với ứng dụng từ 2025). Theo Business Disability Forum, các công ty đầu tư vào khả năng tiếp cận tăng lượng khán giả lên 15–20% và giảm rủi ro pháp lý.
Tại IT Sectr, chúng tôi kiểm tra khả năng tiếp cận ở mọi giai đoạn phát triển. Kinh nghiệm của chúng tôi cho thấy: sửa lỗi khả năng tiếp cận ở giai đoạn thiết kế rẻ hơn 10 lần so với sau khi phát hành. Khả năng tiếp cận không phải là một tính năng, mà là yêu cầu cơ bản đối với một ứng dụng hiện đại.
Hệ sinh thái Apple cung cấp các công cụ khả năng tiếp cận mạnh mẽ. VoiceOver là trình đọc màn hình tích hợp, đọc to mọi thứ đang diễn ra trên màn hình. Người dùng điều khiển thiết bị bằng cử chỉ: vuốt sang phải — phần tử tiếp theo, vuốt sang trái — phần tử trước đó, chạm hai lần — kích hoạt.
Accessibility Label là văn bản mà VoiceOver đọc cho một phần tử. Theo mặc định, iOS sử dụng văn bản nút hoặc nhãn, nhưng đối với biểu tượng và phần tử đồ họa, bạn cần đặt nhãn một cách rõ ràng. Accessibility Trait là thuộc tính mô tả loại phần tử: button (nút), header (tiêu đề), link (liên kết), image (hình ảnh). Traits chính xác giúp người dùng hiểu cách tương tác với một phần tử.
VoiceOver hỗ trợ hơn 40 ngôn ngữ và hoạt động trên tất cả các thiết bị Apple. Đối với nhà phát triển, điều chính là đặt accessibilityLabel và accessibilityTraits chính xác cho từng phần tử giao diện. Nếu một phần tử không nên được tiếp cận (hình ảnh trang trí), hãy đặt isAccessibilityElement = false.
// Swift — thiết lập khả năng tiếp cận cho nút
let shareButton = UIButton()
shareButton.setImage(UIImage(named: "share-icon"), for: .normal)
shareButton.accessibilityLabel = "Chia sẻ bài viết này"
shareButton.accessibilityHint = "Mở hộp thoại chọn phương thức gửi"
shareButton.accessibilityTraits = .button
// SwiftUI — thậm chí đơn giản hơn
struct ShareButtonView: View {
var body: some View {
Button(action: share) {
Image(systemName: "square.and.arrow.up")
}
.accessibilityLabel("Chia sẻ")
.accessibilityHint("Mở menu chia sẻ")
}
}
Mã này cho thấy thiết lập khả năng tiếp cận cho nút không có văn bản (chỉ biểu tượng). AccessibilityLabel là những gì người dùng sẽ nghe thấy. AccessibilityHint là gợi ý bổ sung về kết quả của hành động. Không sử dụng các cụm từ như «nút để» trong nhãn — Trait đã cho biết đó là nút.
TalkBack là trình đọc màn hình của Google dành cho Android, thuộc gói Android Accessibility Suite. Giống như VoiceOver, nó đọc to các phần tử giao diện và được điều khiển bằng cử chỉ. TalkBack hỗ trợ hơn 100 ngôn ngữ và hoạt động trên tất cả các thiết bị có Google Play Services.
Content Description tương đương với accessibilityLabel trên Android. Nó được đặt qua thuộc tính android:contentDescription trong XML hoặc qua phương thức setContentDescription() trong mã. Đối với các phần tử không thể lấy tiêu điểm (ImageView trang trí), hãy sử dụng importantForAccessibility="no".
Focus Order (thứ tự tiêu điểm) là trình tự TalkBack di chuyển giữa các phần tử khi vuốt. Theo mặc định, Android sử dụng thứ tự các phần tử trong bố cục, nhưng có thể thay đổi qua các thuộc tính accessibilityTraversalBefore và accessibilityTraversalAfter. Điều này quan trọng đối với các màn hình phức tạp có thành phần tùy chỉnh.
Tại IT Sectr, chúng tôi kiểm tra Focus Order trên mọi màn hình. Lỗi thứ tự tiêu điểm là một trong những vấn đề khả năng tiếp cận phổ biến nhất. Ví dụ: nếu sau tiêu đề, người dùng chuyển đến bình luận thay vì nội dung bài viết — đó là lỗi khả năng tiếp cận.
WCAG (Web Content Accessibility Guidelines) là tiêu chuẩn khả năng tiếp cận quốc tế do W3C phát triển. Phiên bản hiện tại là WCAG 2.2 (2023). Tiêu chuẩn được chia thành 4 nguyên tắc: Perceivable (có thể nhận biết), Operable (có thể thao tác), Understandable (có thể hiểu), Robust (mạnh mẽ) — viết tắt POUR.
Cấp độ WCAG: A (tối thiểu), AA (trung bình, bắt buộc theo pháp luật EU), AAA (tối đa). Đối với ứng dụng di động, cấp độ AA là đủ: độ tương phản văn bản tối thiểu 4.5:1, hỗ trợ trình đọc màn hình, kích thước mục tiêu tối thiểu 44x44 pixel, phụ đề cho video.
Cấp độ A — yêu cầu cơ bản: văn bản thay thế cho hình ảnh, điều khiển bằng bàn phím, độ tương phản tối thiểu 3:1. Cấp độ AA — trung bình: độ tương phản 4.5:1, hỗ trợ phóng to lên đến 200%, tiêu đề và nhãn chính xác. Cấp độ AAA — cao: độ tương phản 7:1, ngôn ngữ ký hiệu cho video, điều khiển bằng giọng nói hoàn toàn. Trong thực tế, hầu hết các công ty đều nhắm đến AA.
| Tham số | iOS | Android |
|---|---|---|
| Trình đọc màn hình | VoiceOver | TalkBack |
| Nhãn phần tử | accessibilityLabel | android:contentDescription |
| Loại phần tử | accessibilityTraits | accessibilityRole (Compose), mức độ quan trọng tiêu điểm |
| Thứ tự tiêu điểm | Tự động (có thể thay đổi) | accessibilityTraversalBefore/After |
| Tỷ lệ văn bản | Dynamic Type (UIFontMetrics) | sp (scale-independent pixels) |
| Giảm chuyển động | UIAccessibility.isReduceMotionEnabled | Settings.Global.getFloat(... ANIMATOR_DURATION_SCALE) |
Bảng 2. So sánh API khả năng tiếp cận iOS và Android. Mặc dù tên gọi khác nhau, các khái niệm đều giống nhau: nhãn, loại, thứ tự tiêu điểm và hỗ trợ điều chỉnh văn bản.
Kiểm thử khả năng tiếp cận là kiểm tra ứng dụng về sự tuân thủ các tiêu chuẩn WCAG và hoạt động chính xác với trình đọc màn hình. Bộ kiểm thử tối thiểu: bật VoiceOver/TalkBack và điều hướng qua tất cả các màn hình của ứng dụng. Lắng nghe để kiểm tra rằng tất cả các phần tử đều được đọc, thứ tự tiêu điểm hợp lý và các phần tử không phù hợp (trang trí) bị bỏ qua.
Các công cụ tự động: Xcode Accessibility Inspector (kiểm toán trong Xcode cho iOS), Android Accessibility Scanner (quét màn hình và tìm vấn đề), Axe DevTools, WAVE. Các công cụ này kiểm tra độ tương phản, kích thước mục tiêu, sự hiện diện của nhãn và các tham số khác.
Tại IT Sectr, chúng tôi tiến hành đánh giá khả năng tiếp cận trước mỗi lần phát hành. Quy trình bao gồm: kiểm toán tự động (Accessibility Inspector), kiểm thử thủ công với VoiceOver và TalkBack, kiểm tra độ tương phản và tỷ lệ văn bản. Chúng tôi ghi lại các vấn đề trong Jira và giao cho sprint. Điều này cho phép chúng tôi duy trì cấp độ AA WCAG trên tất cả các dự án.
Câu hỏi thường gặp
Cài đặt → Trợ năng → VoiceOver. Hoặc nhấn ba lần nút bên (hoặc nút Home) với phím tắt trợ năng được bật. Để bật nhanh, hãy sử dụng Siri: «Bật VoiceOver». Trên Android, TalkBack được bật trong Cài đặt → Trợ năng → TalkBack.
Để tuân thủ luật pháp EU (European Accessibility Act từ 2025) và Mỹ (ADA), cấp độ AA là bắt buộc. Điều này có nghĩa: độ tương phản 4.5:1, tất cả các phần tử có nhãn, kích thước mục tiêu tối thiểu 44x44 pixel, hỗ trợ trình đọc màn hình, phụ đề cho video.
Có. Khả năng tiếp cận giúp ích cho tất cả mọi người: người cao tuổi, người dùng trong ngày nắng chói, cha mẹ bế em bé (một tay). Ngoài ra, đó là yêu cầu pháp lý ở nhiều quốc gia. Tính hòa nhập mở rộng đối tượng và cải thiện trải nghiệm người dùng cho tất cả mọi người.
Sử dụng các công cụ sau: WebAIM Contrast Checker (trực tuyến), Stark cho Figma/Sketch. Đối với WCAG AA, tỷ lệ tối thiểu là 4.5:1 cho văn bản thường và 3:1 cho văn bản lớn (18px trở lên). Đối với AAA — lần lượt là 7:1 và 4.5:1.
Tổng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.