https://developer.apple.com/documentation/appkit/accessibility_for_appkit
"Make your AppKit apps accessible to everyone who uses macOS."
AppKit
앱을 macOS 사용자 모두가 접근 가능하도록 만듭니다.
앱을 접근 가능하게 만드는 것의 의미는 모든 사람에게 유용하다는 것을 의미합니다. 접근성을 염두에 두고 앱을 설계함으로써 모든 사람이 앱을 즐길 수 있도록 만들 수 있습니다. 더 많은 정보는 Accessibility를 살펴보시기 바랍니다.
Accessibility
https://developer.apple.com/documentation/accessibility
https://velog.io/@panther222128/Accessibility
AppKit
컨트롤과 뷰는 접근성이 내장되어 있으며, 기본값으로 접근 가능한 사용자 경험을 제공하고 있습니다. 표준 접근성 기능에 추가적으로 수행할 무언가는 없습니다.
어떤 경우 앱을 더 잘 내타내도록 하거나 추가적인 컨텍스트의 제공 혹은 앱을 통한 사용자의 흐름을 수정하기 위해 기본값을 수정하길 원할 수도 있습니다. AppKit
은 이러한 커스터마이징을 간단하게 만들고 있습니다. 이는 정의하려는 UI를 만들 수 있도록 몇 줄의 코드 작성 혹은 인터페이스 조정을 통해 구현할 수 있습니다. AppKit
요소에 대한 접근성 커스터마이징은 NSAccessibilityProtocol
을 살펴보시기 바랍니다.
NSAccessibilityProtocol
https://developer.apple.com/documentation/appkit/nsaccessibilityprotocol
https://velog.io/@panther222128/NSAccessibilityProtocol
만약 앱이 NSView
를 서브클래싱한 커스텀 UI 요소를 포함하고 있는 경우 커스텀 컨트롤에서 role-based 프로토콜을 사용해 이 요소들의 접근성을 강화시키기 바랍니다. 만약 앱이 NSView
로부터 상속받지 않은 커스텀 UI 요소 혹은 AppKit
클래스가 아닌 커스텀 UI 요소를 포함하고 있다면, 이 요소들에 대해 NSAccessibilityElement
를 서브클래싱함으로써 접근 가능하도록 만드시기 바랍니다.
만약 SwiftUI로 앱을 빌드하고 있다면 Accessibilty를 살펴보시기 바랍니다.
첫 문단의 Accessibility와 링크가 다르며, 다른 내용을 포함하고 있습니다.
Accessibility
https://developer.apple.com/documentation/swiftui/view-accessibility
https://velog.io/@panther222128/Accessibility-qx9eve03
만약 커스텀 UI 요소 생성을 위해 AppKit
뷰를 서브클래싱하고자 한다면, 요소의 접근성을 강화하기 위해 하나 혹은 하나 이상의 role-specific 프로토콜을 채택할 수 있습니다.
role-specific 프로토콜을 채택하고 이 프로토콜의 메소드를 구현함으로써 커스텀 UI 요소가 접근성을 지원하도록 합니다.
https://developer.apple.com/documentation/appkit/accessibility_for_appkit/custom_controls
https://velog.io/@panther222128/Custom-Controls
커스텀 뷰 및 컨트롤에 대한 글로벌 접근성 함수입니다.
https://developer.apple.com/documentation/appkit/accessibility_for_appkit/accessibility_functions
https://velog.io/@panther222128/Accessibility-Functions
AppKit
뷰를 서브클래싱하지 않고 완전히 커스텀인 UI 요소를 설계하는 경우 접근성 요소 클래스를 서브클래스해야 합니다.
보조 앱과의 상호작용을 위해 필요한 기본적인 인프라입니다.
https://developer.apple.com/documentation/appkit/nsaccessibilityelement
https://velog.io/@panther222128/NSAccessibilityElement
마우스, 키보드, 트랙패드 관련 이벤트를 처리합니다.
https://developer.apple.com/documentation/appkit/mouse_keyboard_and_trackpad
https://velog.io/@panther222128/Mouse-Keyboard-and-Trackpad
앱과의 상호작용을 제공하기 위해 메뉴 및 커서를 구현하고, 업데이트 정보를 전달하기 위해 앱의 도크 타일을 사용합니다.
https://developer.apple.com/documentation/appkit/menus_cursors_and_the_dock
https://velog.io/@panther222128/Mouse-Keyboard-and-Trackpad
제스쳐 리코그나이저에 있는 앱의 이벤트 처리 로직을 캡슐화합니다. 이로써 앱을 통해 해당 코드를 재사용할 수 있습니다.
https://developer.apple.com/documentation/appkit/gestures
https://velog.io/@panther222128/Gestures
터치 바에 상호작용 컨텐트와 컨트롤을 표시합니다.
https://developer.apple.com/documentation/appkit/touch_bar
https://velog.io/@panther222128/Touch-Bar
드래그 앤 드롭을 사용해 앱 컨텐트를 직접 조작하는 것을 지원합니다.
https://developer.apple.com/documentation/appkit/drag_and_drop
https://velog.io/@panther222128/Drag-and-Drop-c5i2jzu8