[ios] 접근성 헬퍼

iOS 애플리케이션을 개발하면서 접근성을 고려해야 합니다. 사용자가 화면을 터치할 수 없는 경우나 시각적으로 정보를 얻을 수 없는 경우를 위해서 접근성 기능을 제공해야 합니다. iOS에서는 이를 도와주는 여러 가지 헬퍼 클래스들이 제공됩니다.

UIAccessibility

가장 기본적인 iOS 접근성 헬퍼 클래스로, UIAccessibility 프로토콜을 준수하는 객체를 사용하여 커스텀 접근성 정보를 제공할 수 있습니다. 또한, VoiceOver와 같은 접근성 서비스가 이 정보를 읽을 수 있도록 합니다.

class CustomView: UIView {

    override var isAccessibilityElement: Bool {
        get { return true }
        set { }
    }

    override var accessibilityLabel: String? {
        get { return "Custom view" }
        set { }
    }

    override var accessibilityTraits: UIAccessibilityTraits {
        get { return UIAccessibilityTraits.button }
        set { }
    }
}

UIAccessibilityElement

UIAccessibilityElement 클래스를 사용하여 인터페이스의 부분적인 접근성 정보를 제공할 수 있습니다. 이 클래스를 통해 접근성을 가진 커스텀 뷰를 구현할 수 있습니다.

let customElement = UIAccessibilityElement(accessibilityContainer: self)
customElement.accessibilityLabel = "Custom element"
customElement.accessibilityFrameInContainerSpace = CGRect(x: 0, y: 0, width: 100, height: 100)

VoiceOver

VoiceOver는 iOS의 스크린 리더 도구로, 화면 상에 터치하는 대신 음성 안내를 통해 사용자가 컨텐츠에 접근할 수 있도록 도와줍니다. VoiceOver를 통해 접근성 헬퍼 클래스들이 정상적으로 동작하는지 확인할 수 있습니다.

참고 자료