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 프로토콜의 접근자 혹은 액션 메소드의 몇 가지를 재구현할 것을 요청할 것입니다. 이 메소드를 간단히 구현하면 컨트롤은 사용할 준비가 될 것입니다.