Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> iPhone

Những điều cơ bản về SwiftUI:Vượt qua 9 rào cản chính về khả năng truy cập trong ứng dụng iOS

Những điều cơ bản về SwiftUI:Vượt qua 9 rào cản chính về khả năng truy cập trong ứng dụng iOS

Ứng dụng di động là công cụ thiết yếu trong cuộc sống hàng ngày, khiến khả năng tiếp cận được ưu tiên hàng đầu. Tuy nhiên, nhiều ứng dụng vẫn chưa mang lại trải nghiệm toàn diện cho người khuyết tật.

Bài viết này nêu bật 9 thách thức về khả năng tiếp cận phổ biến trong ứng dụng dành cho thiết bị di động và chứng minh cách các tính năng của SwiftUI có thể giúp nhà phát triển giải quyết những vấn đề này một cách hiệu quả.

Mỗi thử thách được kết hợp với giải pháp SwiftUI, mã mẫu và mẹo thử nghiệm để hướng dẫn nhà phát triển tạo ứng dụng thân thiện với người dùng và dễ tiếp cận.

Mục lục

  • Các vấn đề về khả năng truy cập của ứng dụng di động và giải pháp SwiftUI

    • Thiếu nhãn và mô tả

    • Độ tương phản màu không đủ

    • Mục tiêu cảm ứng nhỏ

    • Điều hướng không thể truy cập

    • Thiếu phản hồi cho hành động

    • Giao diện người dùng phức tạp hoặc khó hiểu

    • Thiếu sự hỗ trợ cho công nghệ hỗ trợ

    • Các tính năng trợ năng được triển khai kém

    • Tùy chọn tùy chỉnh không đủ

    • Tài liệu tham khảo

Vấn đề về khả năng truy cập của ứng dụng di động và giải pháp SwiftUI

Thiếu Nhãn và Mô tả

  • Thử thách :Nhiều ứng dụng thiếu nhãn hoặc mô tả thích hợp cho các nút, hình ảnh và các thành phần tương tác khác, khiến trình đọc màn hình khó truyền đạt mục đích của chúng cho người dùng khiếm thị. Nếu không có những nhãn này, người dùng có thể khó hiểu được chức năng của ứng dụng.

  • Giải pháp SwiftUI :.accessibilityLabel(_:) của SwiftUI công cụ sửa đổi cho phép nhà phát triển gán nhãn mô tả rõ ràng cho các phần tử tương tác. Các nhãn này cải thiện khả năng điều hướng và hiểu biết bằng cách cung cấp cho trình đọc màn hình ngữ cảnh cần thiết.

  • Ví dụ :

     Label("Shop", systemImage: "cart")
     .accessibilityLabel("Go to Shop")
    
  • Thử nghiệm :Bật VoiceOver trên thiết bị iOS, điều hướng qua ứng dụng và đảm bảo mỗi thành phần đều có nhãn chính xác. VoiceOver phải đọc nhãn rõ ràng để giúp người dùng hiểu mục đích của từng thành phần mà không cần giải thích thêm.

Độ tương phản màu không đủ

  • Thử thách :Độ tương phản thấp giữa màu văn bản và màu nền có thể gây khó khăn cho người dùng khiếm thị khi đọc nội dung, đặc biệt đối với những người khiếm thị về màu sắc hoặc thị lực kém.

  • Giải pháp SwiftUI :Sử dụng màu hệ thống động của SwiftUI (.primary.secondary ), tự động thích ứng với cài đặt chế độ sáng hoặc tối trên thiết bị, đảm bảo khả năng đọc tốt.

  • Ví dụ :

     Text("Shop")
     .foregroundColor(.primary) // Adapts to light or dark mode automatically
    
  • Nếu cần có màu tùy chỉnh, hãy kiểm tra chúng theo tiêu chuẩn WCAG về độ tương phản màu bằng cách sử dụng các công cụ như Trình phân tích độ tương phản màu.

  • Thử nghiệm :Sử dụng Trình kiểm tra khả năng truy cập của Xcode để xác minh độ tương phản và đảm bảo rằng văn bản vẫn có thể đọc được ở cả chế độ sáng và tối. Hướng dẫn của WCAG đề xuất tỷ lệ tương phản tối thiểu là 4,5:1 cho văn bản thông thường.

Mục tiêu cảm ứng nhỏ

  • Thử thách :Các nút nhỏ hoặc vùng cảm ứng khác có thể khiến người dùng bị suy giảm vận động khó tương tác chính xác. Các phần tử quá nhỏ có thể yêu cầu độ chính xác cao hơn mức mà một số người dùng có thể cung cấp.

  • Giải pháp SwiftUI :Đặt kích thước cảm ứng tối thiểu bằng cách thêm phần đệm hoặc sử dụng .frame(minWidth:minHeight:) để đảm bảo kích thước mục tiêu cảm ứng thoải mái.

  • Ví dụ :

     Button(action: { /* Action */ }) {
     Text("Tap Me")
     .frame(minWidth: 44, minHeight: 44)
     }.padding()
    
  • Thử nghiệm :Tương tác thủ công với các thành phần cảm ứng trong ứng dụng trên thiết bị iOS. Đảm bảo chúng có thể dễ dàng chạm vào mà không cần nỗ lực chính xác. Xác minh kích thước mục tiêu cảm ứng bằng Trình kiểm tra trợ năng để xác nhận rằng chúng đáp ứng mức tối thiểu được đề xuất (44x44 điểm).

Điều hướng không thể truy cập

  • Thử thách :Các ứng dụng có khả năng điều hướng hạn chế có thể gây thất vọng cho những người dùng dựa vào trình đọc màn hình hoặc bàn phím. Nếu không có thứ tự đọc rõ ràng, việc điều hướng qua giao diện sẽ trở nên khó khăn.

  • Kỹ thuật SwiftUI dành cho điều hướng có thể truy cập :

    • Các phần tử nhóm với .accessibilityElement(children:) :Kết hợp các phần tử liên quan vào một đơn vị có thể truy cập duy nhất để điều hướng hợp lý hơn.

       VStack {
       Text("Profile")
       Image("profile_picture")
       }
       .accessibilityElement(children: .combine)
      
    • Đặt tiêu điểm với .accessibilityFocused :Điều khiển theo chương trình tập trung vào các phần tử cụ thể.

       Text("Special Announcement")
       .accessibilityFocused($isFocused)
      
    • Hành động tùy chỉnh với .accessibilityAction :Thêm các hành động cụ thể cho các điều khiển tương tác như thanh trượt hoặc bước.

       Slider(value: $value)
       .accessibilityAction(named: "Increase") { value += 10 }
      
    • Ẩn các thành phần trang trí với .accessibilityHidden :Loại trừ những hình ảnh không cần thiết khỏi trình đọc màn hình.

       Image("decorative_image")
       .accessibilityHidden(true)
      
  • Thử nghiệm :Bật VoiceOver và sử dụng cử chỉ vuốt để xác nhận thứ tự tiêu điểm dự định. Ngoài ra, hãy sử dụng bàn phím được kết nối hoặc công tắc điều khiển để kiểm tra quá trình chuyển đổi mượt mà và xác nhận khả năng điều hướng.

Thiếu phản hồi cho các hành động

  • Thử thách :Nếu không có phản hồi, người dùng khiếm thị hoặc khiếm thính có thể gặp khó khăn trong việc xác nhận xem một hành động đã hoàn tất hay chưa. Phản hồi như tín hiệu xúc giác, thính giác hoặc thị giác có thể nâng cao khả năng sử dụng.

  • Giải pháp SwiftUI :Sử dụng .accessibilityHint để cung cấp thêm thông tin về hành động sẽ xảy ra.

  • Ví dụ :

     Button("Submit") {
     // Submit action
     }.accessibilityHint("Submits the form")
    
  • Thử nghiệm :Sử dụng VoiceOver để đảm bảo rằng các gợi ý được đọc ngay sau nhãn. Kiểm tra xem người dùng có thể hiểu chức năng của từng nút mà không cần giải thích thêm hay không.

Giao diện người dùng phức tạp hoặc khó hiểu

  • Thử thách :Giao diện lộn xộn có thể gây choáng ngợp, đặc biệt đối với người dùng bị suy giảm nhận thức, những người có thể gặp khó khăn trong việc điều hướng hoặc xử lý thông tin một cách hiệu quả.

  • Giải pháp SwiftUI :Đơn giản hóa bố cục và sử dụng .accessibilitySortPriority sắp xếp thứ tự đọc hợp lý.

  • Ví dụ :

     VStack {
     Text("Main Content")
     .accessibilitySortPriority(1)
     Button("Secondary Action")
     .accessibilitySortPriority(2)
     }
    
  • Thử nghiệm :Sử dụng VoiceOver để xác minh thứ tự đọc hợp lý và đảm bảo chỉ có thể truy cập được các phần tử có liên quan. Sử dụng .accessibilityHidden để ẩn các yếu tố trang trí không thêm thông tin có ý nghĩa.

Thiếu hỗ trợ cho công nghệ hỗ trợ

  • Thử thách :Việc hỗ trợ không đầy đủ cho trình đọc màn hình hoặc các công nghệ hỗ trợ khác có thể khiến một số người dùng không sử dụng được ứng dụng.

  • Giải pháp SwiftUI :Nhóm các phần tử với .accessibilityElement(children: .combine) để điều hướng gắn kết. Điều này cải thiện khả năng đọc và khả năng sử dụng cho người dùng trình đọc màn hình.

  • Ví dụ :

     VStack {
     Text("Profile")
     Image("profile_picture")
     }
     .accessibilityElement(children: .combine)
    
  • Thử nghiệm :Kiểm tra với VoiceOver để đảm bảo các thành phần được nhóm được thông báo dưới dạng một đơn vị duy nhất, cải thiện luồng điều hướng cho người dùng khiếm thị.

Các tính năng trợ năng được triển khai kém

  • Thử thách :Nếu không kiểm tra và cập nhật thường xuyên, các tính năng trợ năng có thể xuống cấp theo thời gian, tác động tiêu cực đến trải nghiệm người dùng.

  • Giải pháp SwiftUI :Kiểm tra thường xuyên với VoiceOver và Trình kiểm tra khả năng truy cập của Xcode giúp duy trì chức năng hiệu quả.

  • Thử nghiệm :Tiến hành kiểm tra thường xuyên để phát hiện những sự thụt lùi hoặc những cải tiến cần thiết cho khả năng tiếp cận. Kiểm tra lại khả năng sử dụng VoiceOver sau khi cập nhật giao diện người dùng để xác nhận các tính năng vẫn hoạt động.

Không đủ tùy chọn tùy chỉnh

  • Thử thách :Các tùy chọn tùy chỉnh hạn chế, chẳng hạn như kích thước phông chữ hoặc cách phối màu, hạn chế khả năng sử dụng đối với người dùng có nhu cầu thị giác cụ thể.

  • Giải pháp SwiftUI :Sử dụng .dynamicTypeSize() để cho phép chia tỷ lệ văn bản dựa trên cài đặt ưa thích của người dùng.

  • Ví dụ :

     Text("Adjustable Text")
     .dynamicTypeSize(.xxxLarge)
    
  • Thử nghiệm :Điều chỉnh kích thước văn bản trong cài đặt Hỗ trợ tiếp cận của iOS và đảm bảo văn bản của ứng dụng có tỷ lệ chính xác mà không bị cắt bớt hoặc chồng chéo, duy trì khả năng đọc.

Tài liệu tham khảo

  1. Tài liệu dành cho nhà phát triển Apple:Khả năng truy cập SwiftUI

    • Hướng dẫn toàn diện về khả năng truy cập trong SwiftUI, bao gồm các thuộc tính khả năng truy cập như .accessibilityLabel , .accessibilityHint , .accessibilityElement , v.v.

    • Hướng dẫn truy cập SwiftUI

  2. Nguyên tắc giao diện con người của Apple:Khả năng truy cập

    • Các phương pháp hay nhất của Apple để thiết kế các ứng dụng có thể truy cập, bao gồm các đề xuất về độ tương phản màu sắc và kích thước mục tiêu cảm ứng.

    • Nguyên tắc giao diện con người của Apple:Khả năng truy cập

  3. Trình phân tích độ tương phản màu

    • Một công cụ để kiểm tra tỷ lệ tương phản nhằm đảm bảo khả năng tiếp cận màu sắc tuân thủ các tiêu chuẩn WCAG.

    • Máy phân tích độ tương phản màu

  4. VoiceOver và Trình kiểm tra trợ năng

    • Các công cụ kiểm tra tính năng trợ năng có sẵn trong iOS và Xcode để mô phỏng cách sử dụng trình đọc màn hình và kiểm tra các thuộc tính trợ năng.

    • Tài liệu VoiceOver

    • Tài liệu dành cho người kiểm tra khả năng truy cập

  5. Chandraana, N., &Gada, T. (2024). Những thách thức về khả năng truy cập trong các ứng dụng di động hiện tại:Tổng quan toàn diện.

    • Tạp chí này cung cấp phân tích chuyên sâu về những thách thức phổ biến về khả năng tiếp cận mà các ứng dụng di động gặp phải, thảo luận về các ví dụ thực tế và giải pháp tiềm năng cho nhà phát triển.

    • Tạp chí quốc tế về nghiên cứu đổi mới về kỹ thuật máy tính và truyền thông.

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu