https://developer.apple.com/documentation/appkit/accessibility_for_appkit/custom_controls
"Support accessibility for custom user interface elements by adopting a role-specific protocol and implementing its methods."
role-specific 프로토콜을 채택하고 이 프로토콜의 메소드를 구현함으로써 커스텀 UI 요소가 접근성을 지원하도록 합니다.
role-specific 접근성 프로토콜은 앱에서 찾을 수 있는 가장 일반적인 컨트롤 타입을 나타냅니다. 만약 아래의 경우라면 role-specific 접근성 프로토콜을 채택하시기 바랍니다.
NSView
의 서브클래스인 커스텀 컨트롤을 생성하고 있으며, 기본값으로 AppKit
이 제공하고자 하는 것을 넘어서서 컨트롤의 동작을 수정하길 원하는 경우입니다.NSView
를 서브클래싱 하지 않는 특수한 컨트롤로 작업하는 경우입니다. 우선 NSAccessibilityElement
를 살펴보시기 바랍니다.NSAccessibilityElement
https://developer.apple.com/documentation/appkit/nsaccessibilityelement
https://velog.io/@panther222128/NSAccessibilityElement
먼저 컨트롤의 의도하고 있는 동작과 가장 일치하는 role-specific 프로토콜을 확인하시기 바랍니다. 예를 들어 만약 컨트롤이 사용자가 클릭할 때 액션을 촉발하는 무엇이라면, NSAccessibilityButton
프로토콜을 채택하시기 바랍니다.
적한한 프로토콜을 선택한 후 해당 프로토콜을 채택하면 됩니다. 컴파일러는 NSAccessibilityProtocol
프로토콜의 접근자 혹은 액션 메소드의 몇 가지를 재구현할 것을 요청할 것입니다. 이 메소드를 간단히 구현하면 컨트롤은 사용할 준비가 될 것입니다.