objc2_ui_kit/generated/
UIAccessibility.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12extern "C-unwind" {
13    #[cfg(all(
14        feature = "UIResponder",
15        feature = "UIView",
16        feature = "objc2-core-foundation"
17    ))]
18    pub fn UIAccessibilityConvertFrameToScreenCoordinates(rect: CGRect, view: &UIView) -> CGRect;
19}
20
21#[cfg(all(feature = "UIBezierPath", feature = "UIResponder", feature = "UIView"))]
22#[inline]
23pub unsafe extern "C-unwind" fn UIAccessibilityConvertPathToScreenCoordinates(
24    path: &UIBezierPath,
25    view: &UIView,
26) -> Retained<UIBezierPath> {
27    extern "C-unwind" {
28        fn UIAccessibilityConvertPathToScreenCoordinates(
29            path: &UIBezierPath,
30            view: &UIView,
31        ) -> *mut UIBezierPath;
32    }
33    let ret = unsafe { UIAccessibilityConvertPathToScreenCoordinates(path, view) };
34    unsafe { Retained::retain_autoreleased(ret) }
35        .expect("function was marked as returning non-null, but actually returned NULL")
36}
37
38/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axboolreturnblock?language=objc)
39#[cfg(feature = "block2")]
40pub type AXBoolReturnBlock = *mut block2::DynBlock<dyn Fn() -> Bool>;
41
42/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axstringreturnblock?language=objc)
43#[cfg(feature = "block2")]
44pub type AXStringReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut NSString>;
45
46/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axstringarrayreturnblock?language=objc)
47#[cfg(feature = "block2")]
48pub type AXStringArrayReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut NSArray<NSString>>;
49
50/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axattributedstringreturnblock?language=objc)
51#[cfg(feature = "block2")]
52pub type AXAttributedStringReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut NSAttributedString>;
53
54/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axattributedstringarrayreturnblock?language=objc)
55#[cfg(feature = "block2")]
56pub type AXAttributedStringArrayReturnBlock =
57    *mut block2::DynBlock<dyn Fn() -> *mut NSArray<NSAttributedString>>;
58
59/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axrectreturnblock?language=objc)
60#[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
61pub type AXRectReturnBlock = *mut block2::DynBlock<dyn Fn() -> CGRect>;
62
63/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axpathreturnblock?language=objc)
64#[cfg(all(feature = "UIBezierPath", feature = "block2"))]
65pub type AXPathReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut UIBezierPath>;
66
67/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axpointreturnblock?language=objc)
68#[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
69pub type AXPointReturnBlock = *mut block2::DynBlock<dyn Fn() -> CGPoint>;
70
71/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axobjectreturnblock?language=objc)
72#[cfg(feature = "block2")]
73pub type AXObjectReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut AnyObject>;
74
75/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axarrayreturnblock?language=objc)
76#[cfg(feature = "block2")]
77pub type AXArrayReturnBlock = *mut block2::DynBlock<dyn Fn() -> *mut NSArray>;
78
79/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axvoidreturnblock?language=objc)
80#[cfg(feature = "block2")]
81pub type AXVoidReturnBlock = *mut block2::DynBlock<dyn Fn()>;
82
83/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axtraitsreturnblock?language=objc)
84#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
85pub type AXTraitsReturnBlock = *mut block2::DynBlock<dyn Fn() -> UIAccessibilityTraits>;
86
87/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axnavigationstylereturnblock?language=objc)
88#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
89pub type AXNavigationStyleReturnBlock =
90    *mut block2::DynBlock<dyn Fn() -> UIAccessibilityNavigationStyle>;
91
92/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axcontainertypereturnblock?language=objc)
93#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
94pub type AXContainerTypeReturnBlock =
95    *mut block2::DynBlock<dyn Fn() -> UIAccessibilityContainerType>;
96
97/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axtextualcontextreturnblock?language=objc)
98#[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
99pub type AXTextualContextReturnBlock =
100    *mut block2::DynBlock<dyn Fn() -> *mut UIAccessibilityTextualContext>;
101
102/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axcustomactionsreturnblock?language=objc)
103#[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
104pub type AXCustomActionsReturnBlock =
105    *mut block2::DynBlock<dyn Fn() -> *mut NSArray<UIAccessibilityCustomAction>>;
106
107/// [Apple's documentation](https://developer.apple.com/documentation/uikit/axuitextinputreturnblock?language=objc)
108#[cfg(all(
109    feature = "UITextInput",
110    feature = "UITextInputTraits",
111    feature = "block2"
112))]
113pub type AXUITextInputReturnBlock =
114    *mut block2::DynBlock<dyn Fn() -> *mut ProtocolObject<dyn UITextInput>>;
115
116mod private_NSObjectUIAccessibility {
117    pub trait Sealed {}
118}
119
120/// Category "UIAccessibility" on [`NSObject`].
121#[doc(alias = "UIAccessibility")]
122pub unsafe trait NSObjectUIAccessibility:
123    ClassType + Sized + private_NSObjectUIAccessibility::Sealed
124{
125    extern_methods!(
126        #[unsafe(method(isAccessibilityElement))]
127        #[unsafe(method_family = none)]
128        unsafe fn isAccessibilityElement(&self, mtm: MainThreadMarker) -> bool;
129
130        /// Setter for [`isAccessibilityElement`][Self::isAccessibilityElement].
131        #[unsafe(method(setIsAccessibilityElement:))]
132        #[unsafe(method_family = none)]
133        unsafe fn setIsAccessibilityElement(
134            &self,
135            is_accessibility_element: bool,
136            mtm: MainThreadMarker,
137        );
138
139        #[unsafe(method(accessibilityLabel))]
140        #[unsafe(method_family = none)]
141        unsafe fn accessibilityLabel(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
142
143        /// Setter for [`accessibilityLabel`][Self::accessibilityLabel].
144        #[unsafe(method(setAccessibilityLabel:))]
145        #[unsafe(method_family = none)]
146        unsafe fn setAccessibilityLabel(
147            &self,
148            accessibility_label: Option<&NSString>,
149            mtm: MainThreadMarker,
150        );
151
152        #[unsafe(method(accessibilityAttributedLabel))]
153        #[unsafe(method_family = none)]
154        unsafe fn accessibilityAttributedLabel(
155            &self,
156            mtm: MainThreadMarker,
157        ) -> Option<Retained<NSAttributedString>>;
158
159        /// Setter for [`accessibilityAttributedLabel`][Self::accessibilityAttributedLabel].
160        #[unsafe(method(setAccessibilityAttributedLabel:))]
161        #[unsafe(method_family = none)]
162        unsafe fn setAccessibilityAttributedLabel(
163            &self,
164            accessibility_attributed_label: Option<&NSAttributedString>,
165            mtm: MainThreadMarker,
166        );
167
168        #[unsafe(method(accessibilityHint))]
169        #[unsafe(method_family = none)]
170        unsafe fn accessibilityHint(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
171
172        /// Setter for [`accessibilityHint`][Self::accessibilityHint].
173        #[unsafe(method(setAccessibilityHint:))]
174        #[unsafe(method_family = none)]
175        unsafe fn setAccessibilityHint(
176            &self,
177            accessibility_hint: Option<&NSString>,
178            mtm: MainThreadMarker,
179        );
180
181        #[unsafe(method(accessibilityAttributedHint))]
182        #[unsafe(method_family = none)]
183        unsafe fn accessibilityAttributedHint(
184            &self,
185            mtm: MainThreadMarker,
186        ) -> Option<Retained<NSAttributedString>>;
187
188        /// Setter for [`accessibilityAttributedHint`][Self::accessibilityAttributedHint].
189        #[unsafe(method(setAccessibilityAttributedHint:))]
190        #[unsafe(method_family = none)]
191        unsafe fn setAccessibilityAttributedHint(
192            &self,
193            accessibility_attributed_hint: Option<&NSAttributedString>,
194            mtm: MainThreadMarker,
195        );
196
197        #[unsafe(method(accessibilityValue))]
198        #[unsafe(method_family = none)]
199        unsafe fn accessibilityValue(&self, mtm: MainThreadMarker) -> Option<Retained<NSString>>;
200
201        /// Setter for [`accessibilityValue`][Self::accessibilityValue].
202        #[unsafe(method(setAccessibilityValue:))]
203        #[unsafe(method_family = none)]
204        unsafe fn setAccessibilityValue(
205            &self,
206            accessibility_value: Option<&NSString>,
207            mtm: MainThreadMarker,
208        );
209
210        #[unsafe(method(accessibilityAttributedValue))]
211        #[unsafe(method_family = none)]
212        unsafe fn accessibilityAttributedValue(
213            &self,
214            mtm: MainThreadMarker,
215        ) -> Option<Retained<NSAttributedString>>;
216
217        /// Setter for [`accessibilityAttributedValue`][Self::accessibilityAttributedValue].
218        #[unsafe(method(setAccessibilityAttributedValue:))]
219        #[unsafe(method_family = none)]
220        unsafe fn setAccessibilityAttributedValue(
221            &self,
222            accessibility_attributed_value: Option<&NSAttributedString>,
223            mtm: MainThreadMarker,
224        );
225
226        #[cfg(feature = "UIAccessibilityConstants")]
227        #[unsafe(method(accessibilityTraits))]
228        #[unsafe(method_family = none)]
229        unsafe fn accessibilityTraits(&self, mtm: MainThreadMarker) -> UIAccessibilityTraits;
230
231        #[cfg(feature = "UIAccessibilityConstants")]
232        /// Setter for [`accessibilityTraits`][Self::accessibilityTraits].
233        #[unsafe(method(setAccessibilityTraits:))]
234        #[unsafe(method_family = none)]
235        unsafe fn setAccessibilityTraits(
236            &self,
237            accessibility_traits: UIAccessibilityTraits,
238            mtm: MainThreadMarker,
239        );
240
241        #[cfg(feature = "objc2-core-foundation")]
242        #[unsafe(method(accessibilityFrame))]
243        #[unsafe(method_family = none)]
244        unsafe fn accessibilityFrame(&self, mtm: MainThreadMarker) -> CGRect;
245
246        #[cfg(feature = "objc2-core-foundation")]
247        /// Setter for [`accessibilityFrame`][Self::accessibilityFrame].
248        #[unsafe(method(setAccessibilityFrame:))]
249        #[unsafe(method_family = none)]
250        unsafe fn setAccessibilityFrame(&self, accessibility_frame: CGRect, mtm: MainThreadMarker);
251
252        #[cfg(feature = "UIBezierPath")]
253        #[unsafe(method(accessibilityPath))]
254        #[unsafe(method_family = none)]
255        unsafe fn accessibilityPath(&self, mtm: MainThreadMarker)
256            -> Option<Retained<UIBezierPath>>;
257
258        #[cfg(feature = "UIBezierPath")]
259        /// Setter for [`accessibilityPath`][Self::accessibilityPath].
260        #[unsafe(method(setAccessibilityPath:))]
261        #[unsafe(method_family = none)]
262        unsafe fn setAccessibilityPath(
263            &self,
264            accessibility_path: Option<&UIBezierPath>,
265            mtm: MainThreadMarker,
266        );
267
268        #[cfg(feature = "objc2-core-foundation")]
269        #[unsafe(method(accessibilityActivationPoint))]
270        #[unsafe(method_family = none)]
271        unsafe fn accessibilityActivationPoint(&self, mtm: MainThreadMarker) -> CGPoint;
272
273        #[cfg(feature = "objc2-core-foundation")]
274        /// Setter for [`accessibilityActivationPoint`][Self::accessibilityActivationPoint].
275        #[unsafe(method(setAccessibilityActivationPoint:))]
276        #[unsafe(method_family = none)]
277        unsafe fn setAccessibilityActivationPoint(
278            &self,
279            accessibility_activation_point: CGPoint,
280            mtm: MainThreadMarker,
281        );
282
283        #[unsafe(method(accessibilityLanguage))]
284        #[unsafe(method_family = none)]
285        unsafe fn accessibilityLanguage(&self, mtm: MainThreadMarker)
286            -> Option<Retained<NSString>>;
287
288        /// Setter for [`accessibilityLanguage`][Self::accessibilityLanguage].
289        #[unsafe(method(setAccessibilityLanguage:))]
290        #[unsafe(method_family = none)]
291        unsafe fn setAccessibilityLanguage(
292            &self,
293            accessibility_language: Option<&NSString>,
294            mtm: MainThreadMarker,
295        );
296
297        #[unsafe(method(accessibilityElementsHidden))]
298        #[unsafe(method_family = none)]
299        unsafe fn accessibilityElementsHidden(&self, mtm: MainThreadMarker) -> bool;
300
301        /// Setter for [`accessibilityElementsHidden`][Self::accessibilityElementsHidden].
302        #[unsafe(method(setAccessibilityElementsHidden:))]
303        #[unsafe(method_family = none)]
304        unsafe fn setAccessibilityElementsHidden(
305            &self,
306            accessibility_elements_hidden: bool,
307            mtm: MainThreadMarker,
308        );
309
310        #[unsafe(method(accessibilityViewIsModal))]
311        #[unsafe(method_family = none)]
312        unsafe fn accessibilityViewIsModal(&self, mtm: MainThreadMarker) -> bool;
313
314        /// Setter for [`accessibilityViewIsModal`][Self::accessibilityViewIsModal].
315        #[unsafe(method(setAccessibilityViewIsModal:))]
316        #[unsafe(method_family = none)]
317        unsafe fn setAccessibilityViewIsModal(
318            &self,
319            accessibility_view_is_modal: bool,
320            mtm: MainThreadMarker,
321        );
322
323        #[unsafe(method(shouldGroupAccessibilityChildren))]
324        #[unsafe(method_family = none)]
325        unsafe fn shouldGroupAccessibilityChildren(&self, mtm: MainThreadMarker) -> bool;
326
327        /// Setter for [`shouldGroupAccessibilityChildren`][Self::shouldGroupAccessibilityChildren].
328        #[unsafe(method(setShouldGroupAccessibilityChildren:))]
329        #[unsafe(method_family = none)]
330        unsafe fn setShouldGroupAccessibilityChildren(
331            &self,
332            should_group_accessibility_children: bool,
333            mtm: MainThreadMarker,
334        );
335
336        #[cfg(feature = "UIAccessibilityConstants")]
337        #[unsafe(method(accessibilityNavigationStyle))]
338        #[unsafe(method_family = none)]
339        unsafe fn accessibilityNavigationStyle(
340            &self,
341            mtm: MainThreadMarker,
342        ) -> UIAccessibilityNavigationStyle;
343
344        #[cfg(feature = "UIAccessibilityConstants")]
345        /// Setter for [`accessibilityNavigationStyle`][Self::accessibilityNavigationStyle].
346        #[unsafe(method(setAccessibilityNavigationStyle:))]
347        #[unsafe(method_family = none)]
348        unsafe fn setAccessibilityNavigationStyle(
349            &self,
350            accessibility_navigation_style: UIAccessibilityNavigationStyle,
351            mtm: MainThreadMarker,
352        );
353
354        #[unsafe(method(accessibilityRespondsToUserInteraction))]
355        #[unsafe(method_family = none)]
356        unsafe fn accessibilityRespondsToUserInteraction(&self, mtm: MainThreadMarker) -> bool;
357
358        /// Setter for [`accessibilityRespondsToUserInteraction`][Self::accessibilityRespondsToUserInteraction].
359        #[unsafe(method(setAccessibilityRespondsToUserInteraction:))]
360        #[unsafe(method_family = none)]
361        unsafe fn setAccessibilityRespondsToUserInteraction(
362            &self,
363            accessibility_responds_to_user_interaction: bool,
364            mtm: MainThreadMarker,
365        );
366
367        #[unsafe(method(accessibilityUserInputLabels))]
368        #[unsafe(method_family = none)]
369        unsafe fn accessibilityUserInputLabels(
370            &self,
371            mtm: MainThreadMarker,
372        ) -> Option<Retained<NSArray<NSString>>>;
373
374        /// Setter for [`accessibilityUserInputLabels`][Self::accessibilityUserInputLabels].
375        #[unsafe(method(setAccessibilityUserInputLabels:))]
376        #[unsafe(method_family = none)]
377        unsafe fn setAccessibilityUserInputLabels(
378            &self,
379            accessibility_user_input_labels: Option<&NSArray<NSString>>,
380            mtm: MainThreadMarker,
381        );
382
383        #[unsafe(method(accessibilityAttributedUserInputLabels))]
384        #[unsafe(method_family = none)]
385        unsafe fn accessibilityAttributedUserInputLabels(
386            &self,
387            mtm: MainThreadMarker,
388        ) -> Retained<NSArray<NSAttributedString>>;
389
390        /// Setter for [`accessibilityAttributedUserInputLabels`][Self::accessibilityAttributedUserInputLabels].
391        #[unsafe(method(setAccessibilityAttributedUserInputLabels:))]
392        #[unsafe(method_family = none)]
393        unsafe fn setAccessibilityAttributedUserInputLabels(
394            &self,
395            accessibility_attributed_user_input_labels: Option<&NSArray<NSAttributedString>>,
396            mtm: MainThreadMarker,
397        );
398
399        #[unsafe(method(accessibilityHeaderElements))]
400        #[unsafe(method_family = none)]
401        unsafe fn accessibilityHeaderElements(
402            &self,
403            mtm: MainThreadMarker,
404        ) -> Option<Retained<NSArray>>;
405
406        /// Setter for [`accessibilityHeaderElements`][Self::accessibilityHeaderElements].
407        #[unsafe(method(setAccessibilityHeaderElements:))]
408        #[unsafe(method_family = none)]
409        unsafe fn setAccessibilityHeaderElements(
410            &self,
411            accessibility_header_elements: Option<&NSArray>,
412            mtm: MainThreadMarker,
413        );
414
415        #[cfg(feature = "UIAccessibilityConstants")]
416        #[unsafe(method(accessibilityTextualContext))]
417        #[unsafe(method_family = none)]
418        unsafe fn accessibilityTextualContext(
419            &self,
420            mtm: MainThreadMarker,
421        ) -> Option<Retained<UIAccessibilityTextualContext>>;
422
423        #[cfg(feature = "UIAccessibilityConstants")]
424        /// Setter for [`accessibilityTextualContext`][Self::accessibilityTextualContext].
425        #[unsafe(method(setAccessibilityTextualContext:))]
426        #[unsafe(method_family = none)]
427        unsafe fn setAccessibilityTextualContext(
428            &self,
429            accessibility_textual_context: Option<&UIAccessibilityTextualContext>,
430            mtm: MainThreadMarker,
431        );
432
433        #[cfg(feature = "UIAccessibilityConstants")]
434        #[unsafe(method(accessibilityDirectTouchOptions))]
435        #[unsafe(method_family = none)]
436        unsafe fn accessibilityDirectTouchOptions(
437            &self,
438            mtm: MainThreadMarker,
439        ) -> UIAccessibilityDirectTouchOptions;
440
441        #[cfg(feature = "UIAccessibilityConstants")]
442        /// Setter for [`accessibilityDirectTouchOptions`][Self::accessibilityDirectTouchOptions].
443        #[unsafe(method(setAccessibilityDirectTouchOptions:))]
444        #[unsafe(method_family = none)]
445        unsafe fn setAccessibilityDirectTouchOptions(
446            &self,
447            accessibility_direct_touch_options: UIAccessibilityDirectTouchOptions,
448            mtm: MainThreadMarker,
449        );
450
451        #[cfg(feature = "UIAccessibilityConstants")]
452        #[unsafe(method(accessibilityExpandedStatus))]
453        #[unsafe(method_family = none)]
454        unsafe fn accessibilityExpandedStatus(
455            &self,
456            mtm: MainThreadMarker,
457        ) -> UIAccessibilityExpandedStatus;
458
459        #[cfg(feature = "UIAccessibilityConstants")]
460        /// Setter for [`accessibilityExpandedStatus`][Self::accessibilityExpandedStatus].
461        #[unsafe(method(setAccessibilityExpandedStatus:))]
462        #[unsafe(method_family = none)]
463        unsafe fn setAccessibilityExpandedStatus(
464            &self,
465            accessibility_expanded_status: UIAccessibilityExpandedStatus,
466            mtm: MainThreadMarker,
467        );
468
469        #[cfg(feature = "block2")]
470        #[unsafe(method(isAccessibilityElementBlock))]
471        #[unsafe(method_family = none)]
472        unsafe fn isAccessibilityElementBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
473
474        #[cfg(feature = "block2")]
475        /// Setter for [`isAccessibilityElementBlock`][Self::isAccessibilityElementBlock].
476        #[unsafe(method(setIsAccessibilityElementBlock:))]
477        #[unsafe(method_family = none)]
478        unsafe fn setIsAccessibilityElementBlock(
479            &self,
480            is_accessibility_element_block: AXBoolReturnBlock,
481            mtm: MainThreadMarker,
482        );
483
484        #[cfg(feature = "block2")]
485        #[unsafe(method(accessibilityLabelBlock))]
486        #[unsafe(method_family = none)]
487        unsafe fn accessibilityLabelBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
488
489        #[cfg(feature = "block2")]
490        /// Setter for [`accessibilityLabelBlock`][Self::accessibilityLabelBlock].
491        #[unsafe(method(setAccessibilityLabelBlock:))]
492        #[unsafe(method_family = none)]
493        unsafe fn setAccessibilityLabelBlock(
494            &self,
495            accessibility_label_block: AXStringReturnBlock,
496            mtm: MainThreadMarker,
497        );
498
499        #[cfg(feature = "block2")]
500        #[unsafe(method(accessibilityValueBlock))]
501        #[unsafe(method_family = none)]
502        unsafe fn accessibilityValueBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
503
504        #[cfg(feature = "block2")]
505        /// Setter for [`accessibilityValueBlock`][Self::accessibilityValueBlock].
506        #[unsafe(method(setAccessibilityValueBlock:))]
507        #[unsafe(method_family = none)]
508        unsafe fn setAccessibilityValueBlock(
509            &self,
510            accessibility_value_block: AXStringReturnBlock,
511            mtm: MainThreadMarker,
512        );
513
514        #[cfg(feature = "block2")]
515        #[unsafe(method(accessibilityHintBlock))]
516        #[unsafe(method_family = none)]
517        unsafe fn accessibilityHintBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
518
519        #[cfg(feature = "block2")]
520        /// Setter for [`accessibilityHintBlock`][Self::accessibilityHintBlock].
521        #[unsafe(method(setAccessibilityHintBlock:))]
522        #[unsafe(method_family = none)]
523        unsafe fn setAccessibilityHintBlock(
524            &self,
525            accessibility_hint_block: AXStringReturnBlock,
526            mtm: MainThreadMarker,
527        );
528
529        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
530        #[unsafe(method(accessibilityTraitsBlock))]
531        #[unsafe(method_family = none)]
532        unsafe fn accessibilityTraitsBlock(&self, mtm: MainThreadMarker) -> AXTraitsReturnBlock;
533
534        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
535        /// Setter for [`accessibilityTraitsBlock`][Self::accessibilityTraitsBlock].
536        #[unsafe(method(setAccessibilityTraitsBlock:))]
537        #[unsafe(method_family = none)]
538        unsafe fn setAccessibilityTraitsBlock(
539            &self,
540            accessibility_traits_block: AXTraitsReturnBlock,
541            mtm: MainThreadMarker,
542        );
543
544        #[cfg(feature = "block2")]
545        #[unsafe(method(accessibilityIdentifierBlock))]
546        #[unsafe(method_family = none)]
547        unsafe fn accessibilityIdentifierBlock(&self, mtm: MainThreadMarker)
548            -> AXStringReturnBlock;
549
550        #[cfg(feature = "block2")]
551        /// Setter for [`accessibilityIdentifierBlock`][Self::accessibilityIdentifierBlock].
552        #[unsafe(method(setAccessibilityIdentifierBlock:))]
553        #[unsafe(method_family = none)]
554        unsafe fn setAccessibilityIdentifierBlock(
555            &self,
556            accessibility_identifier_block: AXStringReturnBlock,
557            mtm: MainThreadMarker,
558        );
559
560        #[cfg(feature = "block2")]
561        #[unsafe(method(accessibilityHeaderElementsBlock))]
562        #[unsafe(method_family = none)]
563        unsafe fn accessibilityHeaderElementsBlock(
564            &self,
565            mtm: MainThreadMarker,
566        ) -> AXArrayReturnBlock;
567
568        #[cfg(feature = "block2")]
569        /// Setter for [`accessibilityHeaderElementsBlock`][Self::accessibilityHeaderElementsBlock].
570        #[unsafe(method(setAccessibilityHeaderElementsBlock:))]
571        #[unsafe(method_family = none)]
572        unsafe fn setAccessibilityHeaderElementsBlock(
573            &self,
574            accessibility_header_elements_block: AXArrayReturnBlock,
575            mtm: MainThreadMarker,
576        );
577
578        #[cfg(feature = "block2")]
579        #[unsafe(method(accessibilityAttributedLabelBlock))]
580        #[unsafe(method_family = none)]
581        unsafe fn accessibilityAttributedLabelBlock(
582            &self,
583            mtm: MainThreadMarker,
584        ) -> AXAttributedStringReturnBlock;
585
586        #[cfg(feature = "block2")]
587        /// Setter for [`accessibilityAttributedLabelBlock`][Self::accessibilityAttributedLabelBlock].
588        #[unsafe(method(setAccessibilityAttributedLabelBlock:))]
589        #[unsafe(method_family = none)]
590        unsafe fn setAccessibilityAttributedLabelBlock(
591            &self,
592            accessibility_attributed_label_block: AXAttributedStringReturnBlock,
593            mtm: MainThreadMarker,
594        );
595
596        #[cfg(feature = "block2")]
597        #[unsafe(method(accessibilityAttributedHintBlock))]
598        #[unsafe(method_family = none)]
599        unsafe fn accessibilityAttributedHintBlock(
600            &self,
601            mtm: MainThreadMarker,
602        ) -> AXAttributedStringReturnBlock;
603
604        #[cfg(feature = "block2")]
605        /// Setter for [`accessibilityAttributedHintBlock`][Self::accessibilityAttributedHintBlock].
606        #[unsafe(method(setAccessibilityAttributedHintBlock:))]
607        #[unsafe(method_family = none)]
608        unsafe fn setAccessibilityAttributedHintBlock(
609            &self,
610            accessibility_attributed_hint_block: AXAttributedStringReturnBlock,
611            mtm: MainThreadMarker,
612        );
613
614        #[cfg(feature = "block2")]
615        #[unsafe(method(accessibilityLanguageBlock))]
616        #[unsafe(method_family = none)]
617        unsafe fn accessibilityLanguageBlock(&self, mtm: MainThreadMarker) -> AXStringReturnBlock;
618
619        #[cfg(feature = "block2")]
620        /// Setter for [`accessibilityLanguageBlock`][Self::accessibilityLanguageBlock].
621        #[unsafe(method(setAccessibilityLanguageBlock:))]
622        #[unsafe(method_family = none)]
623        unsafe fn setAccessibilityLanguageBlock(
624            &self,
625            accessibility_language_block: AXStringReturnBlock,
626            mtm: MainThreadMarker,
627        );
628
629        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
630        #[unsafe(method(accessibilityTextualContextBlock))]
631        #[unsafe(method_family = none)]
632        unsafe fn accessibilityTextualContextBlock(
633            &self,
634            mtm: MainThreadMarker,
635        ) -> AXTextualContextReturnBlock;
636
637        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
638        /// Setter for [`accessibilityTextualContextBlock`][Self::accessibilityTextualContextBlock].
639        #[unsafe(method(setAccessibilityTextualContextBlock:))]
640        #[unsafe(method_family = none)]
641        unsafe fn setAccessibilityTextualContextBlock(
642            &self,
643            accessibility_textual_context_block: AXTextualContextReturnBlock,
644            mtm: MainThreadMarker,
645        );
646
647        #[cfg(feature = "block2")]
648        #[unsafe(method(accessibilityUserInputLabelsBlock))]
649        #[unsafe(method_family = none)]
650        unsafe fn accessibilityUserInputLabelsBlock(
651            &self,
652            mtm: MainThreadMarker,
653        ) -> AXStringArrayReturnBlock;
654
655        #[cfg(feature = "block2")]
656        /// Setter for [`accessibilityUserInputLabelsBlock`][Self::accessibilityUserInputLabelsBlock].
657        #[unsafe(method(setAccessibilityUserInputLabelsBlock:))]
658        #[unsafe(method_family = none)]
659        unsafe fn setAccessibilityUserInputLabelsBlock(
660            &self,
661            accessibility_user_input_labels_block: AXStringArrayReturnBlock,
662            mtm: MainThreadMarker,
663        );
664
665        #[cfg(feature = "block2")]
666        #[unsafe(method(accessibilityAttributedUserInputLabelsBlock))]
667        #[unsafe(method_family = none)]
668        unsafe fn accessibilityAttributedUserInputLabelsBlock(
669            &self,
670            mtm: MainThreadMarker,
671        ) -> AXAttributedStringArrayReturnBlock;
672
673        #[cfg(feature = "block2")]
674        /// Setter for [`accessibilityAttributedUserInputLabelsBlock`][Self::accessibilityAttributedUserInputLabelsBlock].
675        #[unsafe(method(setAccessibilityAttributedUserInputLabelsBlock:))]
676        #[unsafe(method_family = none)]
677        unsafe fn setAccessibilityAttributedUserInputLabelsBlock(
678            &self,
679            accessibility_attributed_user_input_labels_block: AXAttributedStringArrayReturnBlock,
680            mtm: MainThreadMarker,
681        );
682
683        #[cfg(feature = "block2")]
684        #[unsafe(method(accessibilityAttributedValueBlock))]
685        #[unsafe(method_family = none)]
686        unsafe fn accessibilityAttributedValueBlock(
687            &self,
688            mtm: MainThreadMarker,
689        ) -> AXAttributedStringReturnBlock;
690
691        #[cfg(feature = "block2")]
692        /// Setter for [`accessibilityAttributedValueBlock`][Self::accessibilityAttributedValueBlock].
693        #[unsafe(method(setAccessibilityAttributedValueBlock:))]
694        #[unsafe(method_family = none)]
695        unsafe fn setAccessibilityAttributedValueBlock(
696            &self,
697            accessibility_attributed_value_block: AXAttributedStringReturnBlock,
698            mtm: MainThreadMarker,
699        );
700
701        #[cfg(feature = "block2")]
702        #[unsafe(method(accessibilityElementsHiddenBlock))]
703        #[unsafe(method_family = none)]
704        unsafe fn accessibilityElementsHiddenBlock(
705            &self,
706            mtm: MainThreadMarker,
707        ) -> AXBoolReturnBlock;
708
709        #[cfg(feature = "block2")]
710        /// Setter for [`accessibilityElementsHiddenBlock`][Self::accessibilityElementsHiddenBlock].
711        #[unsafe(method(setAccessibilityElementsHiddenBlock:))]
712        #[unsafe(method_family = none)]
713        unsafe fn setAccessibilityElementsHiddenBlock(
714            &self,
715            accessibility_elements_hidden_block: AXBoolReturnBlock,
716            mtm: MainThreadMarker,
717        );
718
719        #[cfg(feature = "block2")]
720        #[unsafe(method(accessibilityRespondsToUserInteractionBlock))]
721        #[unsafe(method_family = none)]
722        unsafe fn accessibilityRespondsToUserInteractionBlock(
723            &self,
724            mtm: MainThreadMarker,
725        ) -> AXBoolReturnBlock;
726
727        #[cfg(feature = "block2")]
728        /// Setter for [`accessibilityRespondsToUserInteractionBlock`][Self::accessibilityRespondsToUserInteractionBlock].
729        #[unsafe(method(setAccessibilityRespondsToUserInteractionBlock:))]
730        #[unsafe(method_family = none)]
731        unsafe fn setAccessibilityRespondsToUserInteractionBlock(
732            &self,
733            accessibility_responds_to_user_interaction_block: AXBoolReturnBlock,
734            mtm: MainThreadMarker,
735        );
736
737        #[cfg(feature = "block2")]
738        #[unsafe(method(accessibilityViewIsModalBlock))]
739        #[unsafe(method_family = none)]
740        unsafe fn accessibilityViewIsModalBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
741
742        #[cfg(feature = "block2")]
743        /// Setter for [`accessibilityViewIsModalBlock`][Self::accessibilityViewIsModalBlock].
744        #[unsafe(method(setAccessibilityViewIsModalBlock:))]
745        #[unsafe(method_family = none)]
746        unsafe fn setAccessibilityViewIsModalBlock(
747            &self,
748            accessibility_view_is_modal_block: AXBoolReturnBlock,
749            mtm: MainThreadMarker,
750        );
751
752        #[cfg(feature = "block2")]
753        #[unsafe(method(accessibilityShouldGroupAccessibilityChildrenBlock))]
754        #[unsafe(method_family = none)]
755        unsafe fn accessibilityShouldGroupAccessibilityChildrenBlock(
756            &self,
757            mtm: MainThreadMarker,
758        ) -> AXBoolReturnBlock;
759
760        #[cfg(feature = "block2")]
761        /// Setter for [`accessibilityShouldGroupAccessibilityChildrenBlock`][Self::accessibilityShouldGroupAccessibilityChildrenBlock].
762        #[unsafe(method(setAccessibilityShouldGroupAccessibilityChildrenBlock:))]
763        #[unsafe(method_family = none)]
764        unsafe fn setAccessibilityShouldGroupAccessibilityChildrenBlock(
765            &self,
766            accessibility_should_group_accessibility_children_block: AXBoolReturnBlock,
767            mtm: MainThreadMarker,
768        );
769
770        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
771        #[unsafe(method(accessibilityExpandedStatusBlock))]
772        #[unsafe(method_family = none)]
773        unsafe fn accessibilityExpandedStatusBlock(
774            &self,
775            mtm: MainThreadMarker,
776        ) -> *mut block2::DynBlock<dyn Fn() -> UIAccessibilityExpandedStatus>;
777
778        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
779        /// Setter for [`accessibilityExpandedStatusBlock`][Self::accessibilityExpandedStatusBlock].
780        #[unsafe(method(setAccessibilityExpandedStatusBlock:))]
781        #[unsafe(method_family = none)]
782        unsafe fn setAccessibilityExpandedStatusBlock(
783            &self,
784            accessibility_expanded_status_block: Option<
785                &block2::DynBlock<dyn Fn() -> UIAccessibilityExpandedStatus>,
786            >,
787            mtm: MainThreadMarker,
788        );
789
790        #[cfg(feature = "block2")]
791        #[unsafe(method(accessibilityElementsBlock))]
792        #[unsafe(method_family = none)]
793        unsafe fn accessibilityElementsBlock(&self, mtm: MainThreadMarker) -> AXArrayReturnBlock;
794
795        #[cfg(feature = "block2")]
796        /// Setter for [`accessibilityElementsBlock`][Self::accessibilityElementsBlock].
797        #[unsafe(method(setAccessibilityElementsBlock:))]
798        #[unsafe(method_family = none)]
799        unsafe fn setAccessibilityElementsBlock(
800            &self,
801            accessibility_elements_block: AXArrayReturnBlock,
802            mtm: MainThreadMarker,
803        );
804
805        #[cfg(feature = "block2")]
806        #[unsafe(method(automationElementsBlock))]
807        #[unsafe(method_family = none)]
808        unsafe fn automationElementsBlock(&self, mtm: MainThreadMarker) -> AXArrayReturnBlock;
809
810        #[cfg(feature = "block2")]
811        /// Setter for [`automationElementsBlock`][Self::automationElementsBlock].
812        #[unsafe(method(setAutomationElementsBlock:))]
813        #[unsafe(method_family = none)]
814        unsafe fn setAutomationElementsBlock(
815            &self,
816            automation_elements_block: AXArrayReturnBlock,
817            mtm: MainThreadMarker,
818        );
819
820        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
821        #[unsafe(method(accessibilityContainerTypeBlock))]
822        #[unsafe(method_family = none)]
823        unsafe fn accessibilityContainerTypeBlock(
824            &self,
825            mtm: MainThreadMarker,
826        ) -> AXContainerTypeReturnBlock;
827
828        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
829        /// Setter for [`accessibilityContainerTypeBlock`][Self::accessibilityContainerTypeBlock].
830        #[unsafe(method(setAccessibilityContainerTypeBlock:))]
831        #[unsafe(method_family = none)]
832        unsafe fn setAccessibilityContainerTypeBlock(
833            &self,
834            accessibility_container_type_block: AXContainerTypeReturnBlock,
835            mtm: MainThreadMarker,
836        );
837
838        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
839        #[unsafe(method(accessibilityActivationPointBlock))]
840        #[unsafe(method_family = none)]
841        unsafe fn accessibilityActivationPointBlock(
842            &self,
843            mtm: MainThreadMarker,
844        ) -> AXPointReturnBlock;
845
846        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
847        /// Setter for [`accessibilityActivationPointBlock`][Self::accessibilityActivationPointBlock].
848        #[unsafe(method(setAccessibilityActivationPointBlock:))]
849        #[unsafe(method_family = none)]
850        unsafe fn setAccessibilityActivationPointBlock(
851            &self,
852            accessibility_activation_point_block: AXPointReturnBlock,
853            mtm: MainThreadMarker,
854        );
855
856        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
857        #[unsafe(method(accessibilityFrameBlock))]
858        #[unsafe(method_family = none)]
859        unsafe fn accessibilityFrameBlock(&self, mtm: MainThreadMarker) -> AXRectReturnBlock;
860
861        #[cfg(all(feature = "block2", feature = "objc2-core-foundation"))]
862        /// Setter for [`accessibilityFrameBlock`][Self::accessibilityFrameBlock].
863        #[unsafe(method(setAccessibilityFrameBlock:))]
864        #[unsafe(method_family = none)]
865        unsafe fn setAccessibilityFrameBlock(
866            &self,
867            accessibility_frame_block: AXRectReturnBlock,
868            mtm: MainThreadMarker,
869        );
870
871        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
872        #[unsafe(method(accessibilityNavigationStyleBlock))]
873        #[unsafe(method_family = none)]
874        unsafe fn accessibilityNavigationStyleBlock(
875            &self,
876            mtm: MainThreadMarker,
877        ) -> AXNavigationStyleReturnBlock;
878
879        #[cfg(all(feature = "UIAccessibilityConstants", feature = "block2"))]
880        /// Setter for [`accessibilityNavigationStyleBlock`][Self::accessibilityNavigationStyleBlock].
881        #[unsafe(method(setAccessibilityNavigationStyleBlock:))]
882        #[unsafe(method_family = none)]
883        unsafe fn setAccessibilityNavigationStyleBlock(
884            &self,
885            accessibility_navigation_style_block: AXNavigationStyleReturnBlock,
886            mtm: MainThreadMarker,
887        );
888
889        #[cfg(all(feature = "UIBezierPath", feature = "block2"))]
890        #[unsafe(method(accessibilityPathBlock))]
891        #[unsafe(method_family = none)]
892        unsafe fn accessibilityPathBlock(&self, mtm: MainThreadMarker) -> AXPathReturnBlock;
893
894        #[cfg(all(feature = "UIBezierPath", feature = "block2"))]
895        /// Setter for [`accessibilityPathBlock`][Self::accessibilityPathBlock].
896        #[unsafe(method(setAccessibilityPathBlock:))]
897        #[unsafe(method_family = none)]
898        unsafe fn setAccessibilityPathBlock(
899            &self,
900            accessibility_path_block: AXPathReturnBlock,
901            mtm: MainThreadMarker,
902        );
903
904        #[cfg(feature = "block2")]
905        #[unsafe(method(accessibilityActivateBlock))]
906        #[unsafe(method_family = none)]
907        unsafe fn accessibilityActivateBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
908
909        #[cfg(feature = "block2")]
910        /// Setter for [`accessibilityActivateBlock`][Self::accessibilityActivateBlock].
911        #[unsafe(method(setAccessibilityActivateBlock:))]
912        #[unsafe(method_family = none)]
913        unsafe fn setAccessibilityActivateBlock(
914            &self,
915            accessibility_activate_block: AXBoolReturnBlock,
916            mtm: MainThreadMarker,
917        );
918
919        #[cfg(feature = "block2")]
920        #[unsafe(method(accessibilityIncrementBlock))]
921        #[unsafe(method_family = none)]
922        unsafe fn accessibilityIncrementBlock(&self, mtm: MainThreadMarker) -> AXVoidReturnBlock;
923
924        #[cfg(feature = "block2")]
925        /// Setter for [`accessibilityIncrementBlock`][Self::accessibilityIncrementBlock].
926        #[unsafe(method(setAccessibilityIncrementBlock:))]
927        #[unsafe(method_family = none)]
928        unsafe fn setAccessibilityIncrementBlock(
929            &self,
930            accessibility_increment_block: AXVoidReturnBlock,
931            mtm: MainThreadMarker,
932        );
933
934        #[cfg(feature = "block2")]
935        #[unsafe(method(accessibilityDecrementBlock))]
936        #[unsafe(method_family = none)]
937        unsafe fn accessibilityDecrementBlock(&self, mtm: MainThreadMarker) -> AXVoidReturnBlock;
938
939        #[cfg(feature = "block2")]
940        /// Setter for [`accessibilityDecrementBlock`][Self::accessibilityDecrementBlock].
941        #[unsafe(method(setAccessibilityDecrementBlock:))]
942        #[unsafe(method_family = none)]
943        unsafe fn setAccessibilityDecrementBlock(
944            &self,
945            accessibility_decrement_block: AXVoidReturnBlock,
946            mtm: MainThreadMarker,
947        );
948
949        #[cfg(feature = "block2")]
950        #[unsafe(method(accessibilityPerformEscapeBlock))]
951        #[unsafe(method_family = none)]
952        unsafe fn accessibilityPerformEscapeBlock(
953            &self,
954            mtm: MainThreadMarker,
955        ) -> AXBoolReturnBlock;
956
957        #[cfg(feature = "block2")]
958        /// Setter for [`accessibilityPerformEscapeBlock`][Self::accessibilityPerformEscapeBlock].
959        #[unsafe(method(setAccessibilityPerformEscapeBlock:))]
960        #[unsafe(method_family = none)]
961        unsafe fn setAccessibilityPerformEscapeBlock(
962            &self,
963            accessibility_perform_escape_block: AXBoolReturnBlock,
964            mtm: MainThreadMarker,
965        );
966
967        #[cfg(feature = "block2")]
968        #[unsafe(method(accessibilityMagicTapBlock))]
969        #[unsafe(method_family = none)]
970        unsafe fn accessibilityMagicTapBlock(&self, mtm: MainThreadMarker) -> AXBoolReturnBlock;
971
972        #[cfg(feature = "block2")]
973        /// Setter for [`accessibilityMagicTapBlock`][Self::accessibilityMagicTapBlock].
974        #[unsafe(method(setAccessibilityMagicTapBlock:))]
975        #[unsafe(method_family = none)]
976        unsafe fn setAccessibilityMagicTapBlock(
977            &self,
978            accessibility_magic_tap_block: AXBoolReturnBlock,
979            mtm: MainThreadMarker,
980        );
981
982        #[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
983        #[unsafe(method(accessibilityCustomActionsBlock))]
984        #[unsafe(method_family = none)]
985        unsafe fn accessibilityCustomActionsBlock(
986            &self,
987            mtm: MainThreadMarker,
988        ) -> AXCustomActionsReturnBlock;
989
990        #[cfg(all(feature = "UIAccessibilityCustomAction", feature = "block2"))]
991        /// Setter for [`accessibilityCustomActionsBlock`][Self::accessibilityCustomActionsBlock].
992        #[unsafe(method(setAccessibilityCustomActionsBlock:))]
993        #[unsafe(method_family = none)]
994        unsafe fn setAccessibilityCustomActionsBlock(
995            &self,
996            accessibility_custom_actions_block: AXCustomActionsReturnBlock,
997            mtm: MainThreadMarker,
998        );
999    );
1000}
1001
1002impl private_NSObjectUIAccessibility::Sealed for NSObject {}
1003unsafe impl NSObjectUIAccessibility for NSObject {}
1004
1005#[cfg(feature = "UIAccessibilityConstants")]
1006#[inline]
1007pub unsafe extern "C-unwind" fn UIAccessibilityFocusedElement(
1008    assistive_technology_identifier: Option<&UIAccessibilityAssistiveTechnologyIdentifier>,
1009) -> Option<Retained<AnyObject>> {
1010    extern "C-unwind" {
1011        fn UIAccessibilityFocusedElement(
1012            assistive_technology_identifier: Option<&UIAccessibilityAssistiveTechnologyIdentifier>,
1013        ) -> *mut AnyObject;
1014    }
1015    let ret = unsafe { UIAccessibilityFocusedElement(assistive_technology_identifier) };
1016    unsafe { Retained::retain_autoreleased(ret) }
1017}
1018
1019mod private_NSObjectUIAccessibilityFocus {
1020    pub trait Sealed {}
1021}
1022
1023/// Category "UIAccessibilityFocus" on [`NSObject`].
1024#[doc(alias = "UIAccessibilityFocus")]
1025pub unsafe trait NSObjectUIAccessibilityFocus:
1026    ClassType + Sized + private_NSObjectUIAccessibilityFocus::Sealed
1027{
1028    extern_methods!(
1029        #[unsafe(method(accessibilityElementDidBecomeFocused))]
1030        #[unsafe(method_family = none)]
1031        unsafe fn accessibilityElementDidBecomeFocused(&self, mtm: MainThreadMarker);
1032
1033        #[unsafe(method(accessibilityElementDidLoseFocus))]
1034        #[unsafe(method_family = none)]
1035        unsafe fn accessibilityElementDidLoseFocus(&self, mtm: MainThreadMarker);
1036
1037        #[unsafe(method(accessibilityElementIsFocused))]
1038        #[unsafe(method_family = none)]
1039        unsafe fn accessibilityElementIsFocused(&self, mtm: MainThreadMarker) -> bool;
1040
1041        #[cfg(feature = "UIAccessibilityConstants")]
1042        #[unsafe(method(accessibilityAssistiveTechnologyFocusedIdentifiers))]
1043        #[unsafe(method_family = none)]
1044        unsafe fn accessibilityAssistiveTechnologyFocusedIdentifiers(
1045            &self,
1046            mtm: MainThreadMarker,
1047        ) -> Option<Retained<NSSet<UIAccessibilityAssistiveTechnologyIdentifier>>>;
1048    );
1049}
1050
1051impl private_NSObjectUIAccessibilityFocus::Sealed for NSObject {}
1052unsafe impl NSObjectUIAccessibilityFocus for NSObject {}
1053
1054/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityscrolldirection?language=objc)
1055// NS_ENUM
1056#[repr(transparent)]
1057#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1058pub struct UIAccessibilityScrollDirection(pub NSInteger);
1059impl UIAccessibilityScrollDirection {
1060    #[doc(alias = "UIAccessibilityScrollDirectionRight")]
1061    pub const Right: Self = Self(1);
1062    #[doc(alias = "UIAccessibilityScrollDirectionLeft")]
1063    pub const Left: Self = Self(2);
1064    #[doc(alias = "UIAccessibilityScrollDirectionUp")]
1065    pub const Up: Self = Self(3);
1066    #[doc(alias = "UIAccessibilityScrollDirectionDown")]
1067    pub const Down: Self = Self(4);
1068    #[doc(alias = "UIAccessibilityScrollDirectionNext")]
1069    pub const Next: Self = Self(5);
1070    #[doc(alias = "UIAccessibilityScrollDirectionPrevious")]
1071    pub const Previous: Self = Self(6);
1072}
1073
1074unsafe impl Encode for UIAccessibilityScrollDirection {
1075    const ENCODING: Encoding = NSInteger::ENCODING;
1076}
1077
1078unsafe impl RefEncode for UIAccessibilityScrollDirection {
1079    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1080}
1081
1082mod private_NSObjectUIAccessibilityAction {
1083    pub trait Sealed {}
1084}
1085
1086/// Category "UIAccessibilityAction" on [`NSObject`].
1087#[doc(alias = "UIAccessibilityAction")]
1088pub unsafe trait NSObjectUIAccessibilityAction:
1089    ClassType + Sized + private_NSObjectUIAccessibilityAction::Sealed
1090{
1091    extern_methods!(
1092        #[unsafe(method(accessibilityActivate))]
1093        #[unsafe(method_family = none)]
1094        unsafe fn accessibilityActivate(&self, mtm: MainThreadMarker) -> bool;
1095
1096        #[unsafe(method(accessibilityIncrement))]
1097        #[unsafe(method_family = none)]
1098        unsafe fn accessibilityIncrement(&self, mtm: MainThreadMarker);
1099
1100        #[unsafe(method(accessibilityDecrement))]
1101        #[unsafe(method_family = none)]
1102        unsafe fn accessibilityDecrement(&self, mtm: MainThreadMarker);
1103
1104        #[cfg(feature = "objc2-core-foundation")]
1105        #[unsafe(method(accessibilityZoomInAtPoint:))]
1106        #[unsafe(method_family = none)]
1107        unsafe fn accessibilityZoomInAtPoint(&self, point: CGPoint, mtm: MainThreadMarker) -> bool;
1108
1109        #[cfg(feature = "objc2-core-foundation")]
1110        #[unsafe(method(accessibilityZoomOutAtPoint:))]
1111        #[unsafe(method_family = none)]
1112        unsafe fn accessibilityZoomOutAtPoint(&self, point: CGPoint, mtm: MainThreadMarker)
1113            -> bool;
1114
1115        #[unsafe(method(accessibilityScroll:))]
1116        #[unsafe(method_family = none)]
1117        unsafe fn accessibilityScroll(
1118            &self,
1119            direction: UIAccessibilityScrollDirection,
1120            mtm: MainThreadMarker,
1121        ) -> bool;
1122
1123        #[unsafe(method(accessibilityPerformEscape))]
1124        #[unsafe(method_family = none)]
1125        unsafe fn accessibilityPerformEscape(&self, mtm: MainThreadMarker) -> bool;
1126
1127        #[unsafe(method(accessibilityPerformMagicTap))]
1128        #[unsafe(method_family = none)]
1129        unsafe fn accessibilityPerformMagicTap(&self, mtm: MainThreadMarker) -> bool;
1130
1131        #[cfg(feature = "UIAccessibilityCustomAction")]
1132        #[unsafe(method(accessibilityCustomActions))]
1133        #[unsafe(method_family = none)]
1134        unsafe fn accessibilityCustomActions(
1135            &self,
1136            mtm: MainThreadMarker,
1137        ) -> Option<Retained<NSArray<UIAccessibilityCustomAction>>>;
1138
1139        #[cfg(feature = "UIAccessibilityCustomAction")]
1140        /// Setter for [`accessibilityCustomActions`][Self::accessibilityCustomActions].
1141        #[unsafe(method(setAccessibilityCustomActions:))]
1142        #[unsafe(method_family = none)]
1143        unsafe fn setAccessibilityCustomActions(
1144            &self,
1145            accessibility_custom_actions: Option<&NSArray<UIAccessibilityCustomAction>>,
1146            mtm: MainThreadMarker,
1147        );
1148    );
1149}
1150
1151impl private_NSObjectUIAccessibilityAction::Sealed for NSObject {}
1152unsafe impl NSObjectUIAccessibilityAction for NSObject {}
1153
1154extern_protocol!(
1155    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreadingcontent?language=objc)
1156    pub unsafe trait UIAccessibilityReadingContent: MainThreadOnly {
1157        #[cfg(feature = "objc2-core-foundation")]
1158        #[unsafe(method(accessibilityLineNumberForPoint:))]
1159        #[unsafe(method_family = none)]
1160        unsafe fn accessibilityLineNumberForPoint(&self, point: CGPoint) -> NSInteger;
1161
1162        #[unsafe(method(accessibilityContentForLineNumber:))]
1163        #[unsafe(method_family = none)]
1164        unsafe fn accessibilityContentForLineNumber(
1165            &self,
1166            line_number: NSInteger,
1167        ) -> Option<Retained<NSString>>;
1168
1169        #[cfg(feature = "objc2-core-foundation")]
1170        #[unsafe(method(accessibilityFrameForLineNumber:))]
1171        #[unsafe(method_family = none)]
1172        unsafe fn accessibilityFrameForLineNumber(&self, line_number: NSInteger) -> CGRect;
1173
1174        #[unsafe(method(accessibilityPageContent))]
1175        #[unsafe(method_family = none)]
1176        unsafe fn accessibilityPageContent(&self) -> Option<Retained<NSString>>;
1177
1178        #[optional]
1179        #[unsafe(method(accessibilityAttributedContentForLineNumber:))]
1180        #[unsafe(method_family = none)]
1181        unsafe fn accessibilityAttributedContentForLineNumber(
1182            &self,
1183            line_number: NSInteger,
1184        ) -> Option<Retained<NSAttributedString>>;
1185
1186        #[optional]
1187        #[unsafe(method(accessibilityAttributedPageContent))]
1188        #[unsafe(method_family = none)]
1189        unsafe fn accessibilityAttributedPageContent(&self)
1190            -> Option<Retained<NSAttributedString>>;
1191    }
1192);
1193
1194mod private_NSObjectUIAccessibilityDragging {
1195    pub trait Sealed {}
1196}
1197
1198/// Category "UIAccessibilityDragging" on [`NSObject`].
1199#[doc(alias = "UIAccessibilityDragging")]
1200pub unsafe trait NSObjectUIAccessibilityDragging:
1201    ClassType + Sized + private_NSObjectUIAccessibilityDragging::Sealed
1202{
1203    extern_methods!(
1204        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1205        #[unsafe(method(accessibilityDragSourceDescriptors))]
1206        #[unsafe(method_family = none)]
1207        unsafe fn accessibilityDragSourceDescriptors(
1208            &self,
1209            mtm: MainThreadMarker,
1210        ) -> Option<Retained<NSArray<UIAccessibilityLocationDescriptor>>>;
1211
1212        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1213        /// Setter for [`accessibilityDragSourceDescriptors`][Self::accessibilityDragSourceDescriptors].
1214        #[unsafe(method(setAccessibilityDragSourceDescriptors:))]
1215        #[unsafe(method_family = none)]
1216        unsafe fn setAccessibilityDragSourceDescriptors(
1217            &self,
1218            accessibility_drag_source_descriptors: Option<
1219                &NSArray<UIAccessibilityLocationDescriptor>,
1220            >,
1221            mtm: MainThreadMarker,
1222        );
1223
1224        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1225        #[unsafe(method(accessibilityDropPointDescriptors))]
1226        #[unsafe(method_family = none)]
1227        unsafe fn accessibilityDropPointDescriptors(
1228            &self,
1229            mtm: MainThreadMarker,
1230        ) -> Option<Retained<NSArray<UIAccessibilityLocationDescriptor>>>;
1231
1232        #[cfg(feature = "UIAccessibilityLocationDescriptor")]
1233        /// Setter for [`accessibilityDropPointDescriptors`][Self::accessibilityDropPointDescriptors].
1234        #[unsafe(method(setAccessibilityDropPointDescriptors:))]
1235        #[unsafe(method_family = none)]
1236        unsafe fn setAccessibilityDropPointDescriptors(
1237            &self,
1238            accessibility_drop_point_descriptors: Option<
1239                &NSArray<UIAccessibilityLocationDescriptor>,
1240            >,
1241            mtm: MainThreadMarker,
1242        );
1243    );
1244}
1245
1246impl private_NSObjectUIAccessibilityDragging::Sealed for NSObject {}
1247unsafe impl NSObjectUIAccessibilityDragging for NSObject {}
1248
1249mod private_NSObjectUIAccessibilityHitTest {
1250    pub trait Sealed {}
1251}
1252
1253/// Category "UIAccessibilityHitTest" on [`NSObject`].
1254#[doc(alias = "UIAccessibilityHitTest")]
1255pub unsafe trait NSObjectUIAccessibilityHitTest:
1256    ClassType + Sized + private_NSObjectUIAccessibilityHitTest::Sealed
1257{
1258    extern_methods!(
1259        #[cfg(all(feature = "UIEvent", feature = "objc2-core-foundation"))]
1260        #[unsafe(method(accessibilityHitTest:withEvent:))]
1261        #[unsafe(method_family = none)]
1262        unsafe fn accessibilityHitTest_withEvent(
1263            &self,
1264            point: CGPoint,
1265            event: Option<&UIEvent>,
1266            mtm: MainThreadMarker,
1267        ) -> Option<Retained<AnyObject>>;
1268    );
1269}
1270
1271impl private_NSObjectUIAccessibilityHitTest::Sealed for NSObject {}
1272unsafe impl NSObjectUIAccessibilityHitTest for NSObject {}
1273
1274mod private_NSObjectUIAccessibilityTextNavigation {
1275    pub trait Sealed {}
1276}
1277
1278/// Category "UIAccessibilityTextNavigation" on [`NSObject`].
1279#[doc(alias = "UIAccessibilityTextNavigation")]
1280pub unsafe trait NSObjectUIAccessibilityTextNavigation:
1281    ClassType + Sized + private_NSObjectUIAccessibilityTextNavigation::Sealed
1282{
1283    extern_methods!(
1284        #[unsafe(method(accessibilityPreviousTextNavigationElement))]
1285        #[unsafe(method_family = none)]
1286        unsafe fn accessibilityPreviousTextNavigationElement(
1287            &self,
1288            mtm: MainThreadMarker,
1289        ) -> Option<Retained<AnyObject>>;
1290
1291        /// Setter for [`accessibilityPreviousTextNavigationElement`][Self::accessibilityPreviousTextNavigationElement].
1292        #[unsafe(method(setAccessibilityPreviousTextNavigationElement:))]
1293        #[unsafe(method_family = none)]
1294        unsafe fn setAccessibilityPreviousTextNavigationElement(
1295            &self,
1296            accessibility_previous_text_navigation_element: Option<&AnyObject>,
1297            mtm: MainThreadMarker,
1298        );
1299
1300        #[unsafe(method(accessibilityNextTextNavigationElement))]
1301        #[unsafe(method_family = none)]
1302        unsafe fn accessibilityNextTextNavigationElement(
1303            &self,
1304            mtm: MainThreadMarker,
1305        ) -> Option<Retained<AnyObject>>;
1306
1307        /// Setter for [`accessibilityNextTextNavigationElement`][Self::accessibilityNextTextNavigationElement].
1308        #[unsafe(method(setAccessibilityNextTextNavigationElement:))]
1309        #[unsafe(method_family = none)]
1310        unsafe fn setAccessibilityNextTextNavigationElement(
1311            &self,
1312            accessibility_next_text_navigation_element: Option<&AnyObject>,
1313            mtm: MainThreadMarker,
1314        );
1315
1316        #[cfg(feature = "block2")]
1317        #[unsafe(method(accessibilityPreviousTextNavigationElementBlock))]
1318        #[unsafe(method_family = none)]
1319        unsafe fn accessibilityPreviousTextNavigationElementBlock(
1320            &self,
1321            mtm: MainThreadMarker,
1322        ) -> AXObjectReturnBlock;
1323
1324        #[cfg(feature = "block2")]
1325        /// Setter for [`accessibilityPreviousTextNavigationElementBlock`][Self::accessibilityPreviousTextNavigationElementBlock].
1326        #[unsafe(method(setAccessibilityPreviousTextNavigationElementBlock:))]
1327        #[unsafe(method_family = none)]
1328        unsafe fn setAccessibilityPreviousTextNavigationElementBlock(
1329            &self,
1330            accessibility_previous_text_navigation_element_block: AXObjectReturnBlock,
1331            mtm: MainThreadMarker,
1332        );
1333
1334        #[cfg(feature = "block2")]
1335        #[unsafe(method(accessibilityNextTextNavigationElementBlock))]
1336        #[unsafe(method_family = none)]
1337        unsafe fn accessibilityNextTextNavigationElementBlock(
1338            &self,
1339            mtm: MainThreadMarker,
1340        ) -> AXObjectReturnBlock;
1341
1342        #[cfg(feature = "block2")]
1343        /// Setter for [`accessibilityNextTextNavigationElementBlock`][Self::accessibilityNextTextNavigationElementBlock].
1344        #[unsafe(method(setAccessibilityNextTextNavigationElementBlock:))]
1345        #[unsafe(method_family = none)]
1346        unsafe fn setAccessibilityNextTextNavigationElementBlock(
1347            &self,
1348            accessibility_next_text_navigation_element_block: AXObjectReturnBlock,
1349            mtm: MainThreadMarker,
1350        );
1351    );
1352}
1353
1354impl private_NSObjectUIAccessibilityTextNavigation::Sealed for NSObject {}
1355unsafe impl NSObjectUIAccessibilityTextNavigation for NSObject {}
1356
1357mod private_NSObjectUIAccessibilityTextOperations {
1358    pub trait Sealed {}
1359}
1360
1361/// Category "UIAccessibilityTextOperations" on [`NSObject`].
1362#[doc(alias = "UIAccessibilityTextOperations")]
1363pub unsafe trait NSObjectUIAccessibilityTextOperations:
1364    ClassType + Sized + private_NSObjectUIAccessibilityTextOperations::Sealed
1365{
1366    extern_methods!(
1367        #[cfg(all(feature = "UITextInput", feature = "UITextInputTraits"))]
1368        #[unsafe(method(accessibilityTextInputResponder))]
1369        #[unsafe(method_family = none)]
1370        unsafe fn accessibilityTextInputResponder(
1371            &self,
1372            mtm: MainThreadMarker,
1373        ) -> Option<Retained<ProtocolObject<dyn UITextInput>>>;
1374
1375        #[cfg(all(feature = "UITextInput", feature = "UITextInputTraits"))]
1376        /// This is a [weak property][objc2::topics::weak_property].
1377        /// Setter for [`accessibilityTextInputResponder`][Self::accessibilityTextInputResponder].
1378        #[unsafe(method(setAccessibilityTextInputResponder:))]
1379        #[unsafe(method_family = none)]
1380        unsafe fn setAccessibilityTextInputResponder(
1381            &self,
1382            accessibility_text_input_responder: Option<&ProtocolObject<dyn UITextInput>>,
1383            mtm: MainThreadMarker,
1384        );
1385
1386        #[cfg(all(
1387            feature = "UITextInput",
1388            feature = "UITextInputTraits",
1389            feature = "block2"
1390        ))]
1391        #[unsafe(method(accessibilityTextInputResponderBlock))]
1392        #[unsafe(method_family = none)]
1393        unsafe fn accessibilityTextInputResponderBlock(
1394            &self,
1395            mtm: MainThreadMarker,
1396        ) -> AXUITextInputReturnBlock;
1397
1398        #[cfg(all(
1399            feature = "UITextInput",
1400            feature = "UITextInputTraits",
1401            feature = "block2"
1402        ))]
1403        /// Setter for [`accessibilityTextInputResponderBlock`][Self::accessibilityTextInputResponderBlock].
1404        #[unsafe(method(setAccessibilityTextInputResponderBlock:))]
1405        #[unsafe(method_family = none)]
1406        unsafe fn setAccessibilityTextInputResponderBlock(
1407            &self,
1408            accessibility_text_input_responder_block: AXUITextInputReturnBlock,
1409            mtm: MainThreadMarker,
1410        );
1411    );
1412}
1413
1414impl private_NSObjectUIAccessibilityTextOperations::Sealed for NSObject {}
1415unsafe impl NSObjectUIAccessibilityTextOperations for NSObject {}
1416
1417extern "C-unwind" {
1418    #[cfg(feature = "UIAccessibilityConstants")]
1419    pub fn UIAccessibilityPostNotification(
1420        notification: UIAccessibilityNotifications,
1421        argument: Option<&AnyObject>,
1422    );
1423}
1424
1425#[inline]
1426pub unsafe extern "C-unwind" fn UIAccessibilityIsVoiceOverRunning() -> bool {
1427    extern "C-unwind" {
1428        fn UIAccessibilityIsVoiceOverRunning() -> Bool;
1429    }
1430    unsafe { UIAccessibilityIsVoiceOverRunning() }.as_bool()
1431}
1432
1433extern "C" {
1434    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvoiceoverstatuschanged?language=objc)
1435    pub static UIAccessibilityVoiceOverStatusChanged: &'static NSString;
1436}
1437
1438extern "C" {
1439    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvoiceoverstatusdidchangenotification?language=objc)
1440    pub static UIAccessibilityVoiceOverStatusDidChangeNotification: &'static NSNotificationName;
1441}
1442
1443#[inline]
1444pub unsafe extern "C-unwind" fn UIAccessibilityIsMonoAudioEnabled() -> bool {
1445    extern "C-unwind" {
1446        fn UIAccessibilityIsMonoAudioEnabled() -> Bool;
1447    }
1448    unsafe { UIAccessibilityIsMonoAudioEnabled() }.as_bool()
1449}
1450
1451extern "C" {
1452    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitymonoaudiostatusdidchangenotification?language=objc)
1453    pub static UIAccessibilityMonoAudioStatusDidChangeNotification: &'static NSNotificationName;
1454}
1455
1456#[inline]
1457pub unsafe extern "C-unwind" fn UIAccessibilityIsClosedCaptioningEnabled() -> bool {
1458    extern "C-unwind" {
1459        fn UIAccessibilityIsClosedCaptioningEnabled() -> Bool;
1460    }
1461    unsafe { UIAccessibilityIsClosedCaptioningEnabled() }.as_bool()
1462}
1463
1464extern "C" {
1465    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityclosedcaptioningstatusdidchangenotification?language=objc)
1466    pub static UIAccessibilityClosedCaptioningStatusDidChangeNotification:
1467        &'static NSNotificationName;
1468}
1469
1470#[inline]
1471pub unsafe extern "C-unwind" fn UIAccessibilityIsInvertColorsEnabled() -> bool {
1472    extern "C-unwind" {
1473        fn UIAccessibilityIsInvertColorsEnabled() -> Bool;
1474    }
1475    unsafe { UIAccessibilityIsInvertColorsEnabled() }.as_bool()
1476}
1477
1478extern "C" {
1479    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityinvertcolorsstatusdidchangenotification?language=objc)
1480    pub static UIAccessibilityInvertColorsStatusDidChangeNotification: &'static NSNotificationName;
1481}
1482
1483#[inline]
1484pub unsafe extern "C-unwind" fn UIAccessibilityIsGuidedAccessEnabled() -> bool {
1485    extern "C-unwind" {
1486        fn UIAccessibilityIsGuidedAccessEnabled() -> Bool;
1487    }
1488    unsafe { UIAccessibilityIsGuidedAccessEnabled() }.as_bool()
1489}
1490
1491extern "C" {
1492    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityguidedaccessstatusdidchangenotification?language=objc)
1493    pub static UIAccessibilityGuidedAccessStatusDidChangeNotification: &'static NSNotificationName;
1494}
1495
1496#[inline]
1497pub unsafe extern "C-unwind" fn UIAccessibilityIsBoldTextEnabled() -> bool {
1498    extern "C-unwind" {
1499        fn UIAccessibilityIsBoldTextEnabled() -> Bool;
1500    }
1501    unsafe { UIAccessibilityIsBoldTextEnabled() }.as_bool()
1502}
1503
1504extern "C" {
1505    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityboldtextstatusdidchangenotification?language=objc)
1506    pub static UIAccessibilityBoldTextStatusDidChangeNotification: &'static NSNotificationName;
1507}
1508
1509#[inline]
1510pub unsafe extern "C-unwind" fn UIAccessibilityButtonShapesEnabled() -> bool {
1511    extern "C-unwind" {
1512        fn UIAccessibilityButtonShapesEnabled() -> Bool;
1513    }
1514    unsafe { UIAccessibilityButtonShapesEnabled() }.as_bool()
1515}
1516
1517extern "C" {
1518    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitybuttonshapesenabledstatusdidchangenotification?language=objc)
1519    pub static UIAccessibilityButtonShapesEnabledStatusDidChangeNotification:
1520        &'static NSNotificationName;
1521}
1522
1523#[inline]
1524pub unsafe extern "C-unwind" fn UIAccessibilityIsGrayscaleEnabled() -> bool {
1525    extern "C-unwind" {
1526        fn UIAccessibilityIsGrayscaleEnabled() -> Bool;
1527    }
1528    unsafe { UIAccessibilityIsGrayscaleEnabled() }.as_bool()
1529}
1530
1531extern "C" {
1532    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitygrayscalestatusdidchangenotification?language=objc)
1533    pub static UIAccessibilityGrayscaleStatusDidChangeNotification: &'static NSNotificationName;
1534}
1535
1536#[inline]
1537pub unsafe extern "C-unwind" fn UIAccessibilityIsReduceTransparencyEnabled() -> bool {
1538    extern "C-unwind" {
1539        fn UIAccessibilityIsReduceTransparencyEnabled() -> Bool;
1540    }
1541    unsafe { UIAccessibilityIsReduceTransparencyEnabled() }.as_bool()
1542}
1543
1544extern "C" {
1545    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreducetransparencystatusdidchangenotification?language=objc)
1546    pub static UIAccessibilityReduceTransparencyStatusDidChangeNotification:
1547        &'static NSNotificationName;
1548}
1549
1550#[inline]
1551pub unsafe extern "C-unwind" fn UIAccessibilityIsReduceMotionEnabled() -> bool {
1552    extern "C-unwind" {
1553        fn UIAccessibilityIsReduceMotionEnabled() -> Bool;
1554    }
1555    unsafe { UIAccessibilityIsReduceMotionEnabled() }.as_bool()
1556}
1557
1558extern "C" {
1559    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityreducemotionstatusdidchangenotification?language=objc)
1560    pub static UIAccessibilityReduceMotionStatusDidChangeNotification: &'static NSNotificationName;
1561}
1562
1563#[inline]
1564pub unsafe extern "C-unwind" fn UIAccessibilityPrefersCrossFadeTransitions() -> bool {
1565    extern "C-unwind" {
1566        fn UIAccessibilityPrefersCrossFadeTransitions() -> Bool;
1567    }
1568    unsafe { UIAccessibilityPrefersCrossFadeTransitions() }.as_bool()
1569}
1570
1571extern "C" {
1572    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitypreferscrossfadetransitionsstatusdidchangenotification?language=objc)
1573    pub static UIAccessibilityPrefersCrossFadeTransitionsStatusDidChangeNotification:
1574        &'static NSNotificationName;
1575}
1576
1577#[inline]
1578pub unsafe extern "C-unwind" fn UIAccessibilityIsVideoAutoplayEnabled() -> bool {
1579    extern "C-unwind" {
1580        fn UIAccessibilityIsVideoAutoplayEnabled() -> Bool;
1581    }
1582    unsafe { UIAccessibilityIsVideoAutoplayEnabled() }.as_bool()
1583}
1584
1585extern "C" {
1586    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityvideoautoplaystatusdidchangenotification?language=objc)
1587    pub static UIAccessibilityVideoAutoplayStatusDidChangeNotification: &'static NSNotificationName;
1588}
1589
1590#[inline]
1591pub unsafe extern "C-unwind" fn UIAccessibilityDarkerSystemColorsEnabled() -> bool {
1592    extern "C-unwind" {
1593        fn UIAccessibilityDarkerSystemColorsEnabled() -> Bool;
1594    }
1595    unsafe { UIAccessibilityDarkerSystemColorsEnabled() }.as_bool()
1596}
1597
1598extern "C" {
1599    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilitydarkersystemcolorsstatusdidchangenotification?language=objc)
1600    pub static UIAccessibilityDarkerSystemColorsStatusDidChangeNotification:
1601        &'static NSNotificationName;
1602}
1603
1604#[inline]
1605pub unsafe extern "C-unwind" fn UIAccessibilityIsSwitchControlRunning() -> bool {
1606    extern "C-unwind" {
1607        fn UIAccessibilityIsSwitchControlRunning() -> Bool;
1608    }
1609    unsafe { UIAccessibilityIsSwitchControlRunning() }.as_bool()
1610}
1611
1612extern "C" {
1613    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityswitchcontrolstatusdidchangenotification?language=objc)
1614    pub static UIAccessibilitySwitchControlStatusDidChangeNotification: &'static NSNotificationName;
1615}
1616
1617#[inline]
1618pub unsafe extern "C-unwind" fn UIAccessibilityIsSpeakSelectionEnabled() -> bool {
1619    extern "C-unwind" {
1620        fn UIAccessibilityIsSpeakSelectionEnabled() -> Bool;
1621    }
1622    unsafe { UIAccessibilityIsSpeakSelectionEnabled() }.as_bool()
1623}
1624
1625extern "C" {
1626    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityspeakselectionstatusdidchangenotification?language=objc)
1627    pub static UIAccessibilitySpeakSelectionStatusDidChangeNotification:
1628        &'static NSNotificationName;
1629}
1630
1631#[inline]
1632pub unsafe extern "C-unwind" fn UIAccessibilityIsSpeakScreenEnabled() -> bool {
1633    extern "C-unwind" {
1634        fn UIAccessibilityIsSpeakScreenEnabled() -> Bool;
1635    }
1636    unsafe { UIAccessibilityIsSpeakScreenEnabled() }.as_bool()
1637}
1638
1639extern "C" {
1640    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityspeakscreenstatusdidchangenotification?language=objc)
1641    pub static UIAccessibilitySpeakScreenStatusDidChangeNotification: &'static NSNotificationName;
1642}
1643
1644#[inline]
1645pub unsafe extern "C-unwind" fn UIAccessibilityIsShakeToUndoEnabled() -> bool {
1646    extern "C-unwind" {
1647        fn UIAccessibilityIsShakeToUndoEnabled() -> Bool;
1648    }
1649    unsafe { UIAccessibilityIsShakeToUndoEnabled() }.as_bool()
1650}
1651
1652extern "C" {
1653    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityshaketoundodidchangenotification?language=objc)
1654    pub static UIAccessibilityShakeToUndoDidChangeNotification: &'static NSNotificationName;
1655}
1656
1657#[inline]
1658pub unsafe extern "C-unwind" fn UIAccessibilityIsAssistiveTouchRunning() -> bool {
1659    extern "C-unwind" {
1660        fn UIAccessibilityIsAssistiveTouchRunning() -> Bool;
1661    }
1662    unsafe { UIAccessibilityIsAssistiveTouchRunning() }.as_bool()
1663}
1664
1665extern "C" {
1666    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityassistivetouchstatusdidchangenotification?language=objc)
1667    pub static UIAccessibilityAssistiveTouchStatusDidChangeNotification:
1668        &'static NSNotificationName;
1669}
1670
1671#[inline]
1672pub unsafe extern "C-unwind" fn UIAccessibilityShouldDifferentiateWithoutColor() -> bool {
1673    extern "C-unwind" {
1674        fn UIAccessibilityShouldDifferentiateWithoutColor() -> Bool;
1675    }
1676    unsafe { UIAccessibilityShouldDifferentiateWithoutColor() }.as_bool()
1677}
1678
1679extern "C" {
1680    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityshoulddifferentiatewithoutcolordidchangenotification?language=objc)
1681    pub static UIAccessibilityShouldDifferentiateWithoutColorDidChangeNotification:
1682        &'static NSNotificationName;
1683}
1684
1685#[inline]
1686pub unsafe extern "C-unwind" fn UIAccessibilityIsOnOffSwitchLabelsEnabled() -> bool {
1687    extern "C-unwind" {
1688        fn UIAccessibilityIsOnOffSwitchLabelsEnabled() -> Bool;
1689    }
1690    unsafe { UIAccessibilityIsOnOffSwitchLabelsEnabled() }.as_bool()
1691}
1692
1693extern "C" {
1694    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityonoffswitchlabelsdidchangenotification?language=objc)
1695    pub static UIAccessibilityOnOffSwitchLabelsDidChangeNotification: &'static NSNotificationName;
1696}
1697
1698#[cfg(feature = "block2")]
1699#[inline]
1700pub unsafe extern "C-unwind" fn UIAccessibilityRequestGuidedAccessSession(
1701    enable: bool,
1702    completion_handler: &block2::DynBlock<dyn Fn(Bool)>,
1703) {
1704    extern "C-unwind" {
1705        fn UIAccessibilityRequestGuidedAccessSession(
1706            enable: Bool,
1707            completion_handler: &block2::DynBlock<dyn Fn(Bool)>,
1708        );
1709    }
1710    unsafe { UIAccessibilityRequestGuidedAccessSession(Bool::new(enable), completion_handler) }
1711}
1712
1713/// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityhearingdeviceear?language=objc)
1714// NS_OPTIONS
1715#[repr(transparent)]
1716#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
1717pub struct UIAccessibilityHearingDeviceEar(pub NSUInteger);
1718bitflags::bitflags! {
1719    impl UIAccessibilityHearingDeviceEar: NSUInteger {
1720        #[doc(alias = "UIAccessibilityHearingDeviceEarNone")]
1721        const None = 0;
1722        #[doc(alias = "UIAccessibilityHearingDeviceEarLeft")]
1723        const Left = 1<<1;
1724        #[doc(alias = "UIAccessibilityHearingDeviceEarRight")]
1725        const Right = 1<<2;
1726        #[doc(alias = "UIAccessibilityHearingDeviceEarBoth")]
1727        const Both = UIAccessibilityHearingDeviceEar::Left.0|UIAccessibilityHearingDeviceEar::Right.0;
1728    }
1729}
1730
1731unsafe impl Encode for UIAccessibilityHearingDeviceEar {
1732    const ENCODING: Encoding = NSUInteger::ENCODING;
1733}
1734
1735unsafe impl RefEncode for UIAccessibilityHearingDeviceEar {
1736    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1737}
1738
1739extern "C-unwind" {
1740    pub fn UIAccessibilityHearingDevicePairedEar() -> UIAccessibilityHearingDeviceEar;
1741}
1742
1743extern "C" {
1744    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uiaccessibilityhearingdevicepairedeardidchangenotification?language=objc)
1745    pub static UIAccessibilityHearingDevicePairedEarDidChangeNotification:
1746        &'static NSNotificationName;
1747}