Computer >> 컴퓨터 >  >> 스마트폰 >> iPhone

SwiftUI 필수 사항:iOS 앱의 9가지 주요 접근성 장애물 극복

SwiftUI 필수 사항:iOS 앱의 9가지 주요 접근성 장애물 극복

모바일 앱은 일상생활에 꼭 필요한 도구이므로 접근성을 최우선으로 생각합니다. 그러나 여전히 많은 앱이 장애인을 위한 포용적인 환경을 제공하지 않습니다.

이 기사에서는 모바일 앱의 9가지 일반적인 접근성 문제를 강조하고 SwiftUI 기능이 개발자가 이러한 문제를 효과적으로 해결하는 데 어떻게 도움이 되는지 보여줍니다.

각 과제는 SwiftUI 솔루션, 샘플 코드 및 테스트 팁과 결합되어 개발자가 접근 가능하고 사용자 친화적인 앱을 만드는 데 도움이 됩니다.

목차

  • 모바일 앱 접근성 문제 및 SwiftUI 솔루션

    • 누락된 라벨 및 설명

    • 색상 대비가 부족함

    • 작은 터치 타겟

    • 접근할 수 없는 탐색

    • 행동에 대한 피드백 부족

    • 복잡하거나 혼란스러운 사용자 인터페이스

    • 보조 기술에 대한 지원 부족

    • 제대로 구현되지 않은 접근성 기능

    • 불충분한 사용자 정의 옵션

    • 참고자료

모바일 앱 접근성 문제 및 SwiftUI 솔루션

라벨 및 설명 누락

  • 도전 :많은 앱에는 버튼, 이미지, 기타 대화형 요소에 대한 적절한 레이블이나 설명이 부족하여 화면 판독기가 시각 장애가 있는 사용자에게 목적을 전달하기 어렵습니다. 이러한 라벨이 없으면 사용자가 앱의 기능을 이해하는 데 어려움을 겪을 수 있습니다.

  • SwiftUI 솔루션 :SwiftUI의 .accessibilityLabel(_:) 수정자를 사용하면 개발자가 대화형 요소에 명확하고 설명적인 레이블을 할당할 수 있습니다. 이러한 라벨은 화면 판독기에 필요한 컨텍스트를 제공하여 탐색 및 이해를 향상시킵니다.

  • :

     Label("Shop", systemImage: "cart")
     .accessibilityLabel("Go to Shop")
    
  • 테스트 :iOS 기기에서 VoiceOver를 활성화하고 앱을 탐색하며 각 요소에 정확한 레이블이 있는지 확인하세요. VoiceOver는 추가 설명 없이 사용자가 각 요소의 목적을 이해할 수 있도록 레이블을 명확하게 읽어야 합니다.

불충분한 색상 대비

  • 도전 :텍스트와 배경 색상의 대비가 낮으면 시각 장애가 있는 사용자가 콘텐츠를 읽기 어려울 수 있으며, 특히 색각 이상이 있거나 저시력인 사용자의 경우 더욱 그렇습니다.

  • SwiftUI 솔루션 :SwiftUI의 동적 시스템 색상(.primary)을 사용하세요. 및 .secondary )은 기기의 밝은 모드 또는 어두운 모드 설정에 자동으로 적응하여 우수한 가독성을 보장합니다.

  • :

     Text("Shop")
     .foregroundColor(.primary) // Adapts to light or dark mode automatically
    
  • 사용자 정의 색상이 필요한 경우 색상 대비 분석기와 같은 도구를 사용하여 색상 대비에 대한 WCAG 표준에 대해 테스트하세요.

  • 테스트 :Xcode의 접근성 검사기를 사용하여 대비를 확인하고 밝은 모드와 어두운 모드 모두에서 텍스트를 계속 읽을 수 있는지 확인하세요. WCAG 지침에서는 일반 텍스트에 대해 최소 명암비 4.5:1을 권장합니다.

작은 터치 대상

  • 도전 :작은 버튼이나 기타 터치 영역은 운동 장애가 있는 사용자가 정확하게 상호 작용하기 어려울 수 있습니다. 너무 작은 요소에는 일부 사용자가 제공할 수 있는 것보다 더 높은 정밀도가 필요할 수 있습니다.

  • SwiftUI 솔루션 :패딩을 추가하거나 .frame(minWidth:minHeight:)를 사용하여 최소 터치 크기를 설정합니다. 편안한 터치 대상 크기를 보장합니다.

  • :

     Button(action: { /* Action */ }) {
     Text("Tap Me")
     .frame(minWidth: 44, minHeight: 44)
     }.padding()
    
  • 테스트 :iOS 기기의 앱에서 터치 요소와 수동으로 상호 작용합니다. 정확한 노력 없이도 쉽게 탭할 수 있는지 확인하십시오. 접근성 검사기로 터치 대상 크기가 권장 최소값(44x44포인트)을 충족하는지 확인하세요.

접근할 수 없는 탐색

  • 도전 :탐색 가능성이 제한된 앱은 스크린 리더나 키보드에 의존하는 사용자에게 불만을 야기할 수 있습니다. 명확한 읽기 순서가 없으면 인터페이스 탐색이 어려워집니다.

  • 접근 가능한 탐색을 위한 SwiftUI 기술 :

    • 그룹 요소 .accessibilityElement(children:)로 :보다 효율적인 탐색을 위해 관련 요소를 액세스 가능한 단일 단위로 결합합니다.

       VStack {
       Text("Profile")
       Image("profile_picture")
       }
       .accessibilityElement(children: .combine)
      
    • 초점 설정 .accessibilityFocused로 :프로그래밍 방식으로 특정 요소에 대한 초점을 제어합니다.

       Text("Special Announcement")
       .accessibilityFocused($isFocused)
      
    • 맞춤 작업 .accessibilityAction 사용 :슬라이더나 스테퍼와 같은 대화형 컨트롤에 대한 특정 작업을 추가합니다.

       Slider(value: $value)
       .accessibilityAction(named: "Increase") { value += 10 }
      
    • 장식 요소 숨기기 .accessibilityHidden 사용 :스크린 리더에서 필수적이지 않은 시각적 요소를 제외합니다.

       Image("decorative_image")
       .accessibilityHidden(true)
      
  • 테스트 :VoiceOver를 활성화하고 스와이프 동작을 사용하여 의도한 초점 순서를 확인하세요. 또한 연결된 키보드나 스위치 컨트롤을 사용하여 원활한 전환을 테스트하고 탐색 가능성을 확인하세요.

행동에 대한 피드백 부족

  • 도전 :피드백이 없으면 시각 또는 청각 장애가 있는 사용자는 작업이 완료되었는지 확인하는 데 어려움을 겪을 수 있습니다. 촉각, 청각 또는 시각적 단서와 같은 피드백은 사용성을 향상시킬 수 있습니다.

  • SwiftUI 솔루션 :.accessibilityHint을 사용하세요. 앞으로 일어날 작업에 대한 추가 정보를 제공합니다.

  • :

     Button("Submit") {
     // Submit action
     }.accessibilityHint("Submits the form")
    
  • 테스트 :레이블 바로 다음에 힌트를 읽으려면 VoiceOver를 사용하세요. 추가 설명 없이도 사용자가 각 버튼의 기능을 이해할 수 있는지 확인하세요.

복잡하거나 혼란스러운 사용자 인터페이스

  • 도전 :복잡한 인터페이스는 특히 정보를 효과적으로 탐색하거나 처리하는 데 어려움을 겪는 인지 장애가 있는 사용자에게 부담스러울 수 있습니다.

  • SwiftUI 솔루션 :레이아웃을 단순화하고 .accessibilitySortPriority를 사용하세요. 읽는 순서를 논리적으로 정리합니다.

  • :

     VStack {
     Text("Main Content")
     .accessibilitySortPriority(1)
     Button("Secondary Action")
     .accessibilitySortPriority(2)
     }
    
  • 테스트 :VoiceOver를 사용하여 논리적 읽기 순서를 확인하고 관련 요소에만 접근할 수 있는지 확인하세요. .accessibilityHidden 사용 의미 있는 정보를 추가하지 않는 장식 요소를 숨깁니다.

보조공학에 대한 지원 부족

  • 도전 :스크린 리더 또는 기타 보조 기술에 대한 지원이 부족하면 일부 사용자가 앱을 사용하지 못할 수 있습니다.

  • SwiftUI 솔루션 :.accessibilityElement(children: .combine)으로 요소를 그룹화하세요. 응집력 있는 탐색을 위해. 이를 통해 스크린 리더 사용자의 가독성과 유용성이 향상됩니다.

  • :

     VStack {
     Text("Profile")
     Image("profile_picture")
     }
     .accessibilityElement(children: .combine)
    
  • 테스트 :그룹화된 요소가 단일 단위로 안내되어 시각 장애가 있는 사용자의 탐색 흐름이 개선되는지 VoiceOver를 통해 확인하세요.

잘못 구현된 접근성 기능

  • 도전 :정기적인 테스트와 업데이트가 없으면 접근성 기능은 시간이 지남에 따라 저하되어 사용자 경험에 부정적인 영향을 미칠 수 있습니다.

  • SwiftUI 솔루션 :VoiceOver 및 Xcode의 접근성 검사기를 사용한 정기적인 테스트는 효과적인 기능을 유지하는 데 도움이 됩니다.

  • 테스트 :접근성에 필요한 회귀 또는 개선 사항을 감지하기 위해 정기적인 테스트를 수행합니다. 기능이 계속 유효한지 확인하려면 UI 업데이트 후 VoiceOver 사용성을 다시 확인하세요.

불충분한 맞춤 설정 옵션

  • 도전 :글꼴 크기나 색 구성표와 같은 제한된 사용자 정의 옵션으로 인해 특정한 시각적 요구 사항이 있는 사용자의 사용성이 제한됩니다.

  • SwiftUI 솔루션 :.dynamicTypeSize()을 사용하세요. 사용자가 선호하는 설정에 따라 텍스트 크기를 조정할 수 있습니다.

  • :

     Text("Adjustable Text")
     .dynamicTypeSize(.xxxLarge)
    
  • 테스트 :iOS 접근성 설정에서 텍스트 크기를 조정하고 앱의 텍스트 크기가 잘리거나 겹치지 않고 올바르게 조정되어 가독성을 유지하는지 확인하세요.

참고자료

  1. Apple 개발자 문서:SwiftUI 접근성

    • .accessibilityLabel와 같은 접근성 속성을 다루는 SwiftUI의 접근성에 대한 종합 가이드 , .accessibilityHint , .accessibilityElement , 그리고 더 많은 것.

    • SwiftUI 접근성 가이드

  2. Apple 휴먼 인터페이스 지침:접근성

    • 색상 대비 및 터치 대상 크기 권장 사항을 포함하여 접근성이 뛰어난 앱을 디자인하기 위한 Apple의 모범 사례입니다.

    • Apple 휴먼 인터페이스 지침:접근성

  3. 색상 대비 분석기

    • WCAG 표준을 준수하는 색상 접근성을 보장하기 위해 명암비를 테스트하는 도구입니다.

    • 색상 대비 분석기

  4. VoiceOver 및 접근성 검사기

    • 스크린 리더 사용을 시뮬레이션하고 접근성 속성을 확인하기 위해 iOS 및 Xcode에서 사용할 수 있는 접근성 기능 테스트 도구입니다.

    • VoiceOver 문서

    • 접근성 검사기 문서

  5. 찬다라나, N., &가다, T.(2024). 현재 모바일 애플리케이션의 접근성 문제:종합 개요

    • 이 저널 논문은 모바일 애플리케이션에서 직면하는 일반적인 접근성 문제에 대한 심층 분석을 제공하고 실제 사례와 개발자를 위한 잠재적인 솔루션을 논의합니다.

    • 컴퓨터 및 통신공학 혁신 연구에 관한 국제 저널

무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요