//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_protocol!(
    pub unsafe trait NSAccessibilityElementProtocol: NSObjectProtocol {
        #[method(accessibilityFrame)]
        unsafe fn accessibilityFrame(&self) -> NSRect;

        #[method_id(@__retain_semantics Other accessibilityParent)]
        unsafe fn accessibilityParent(&self) -> Option<Retained<AnyObject>>;

        #[optional]
        #[method(isAccessibilityFocused)]
        unsafe fn isAccessibilityFocused(&self) -> bool;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityIdentifier)]
        unsafe fn accessibilityIdentifier(&self) -> Retained<NSString>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityElementProtocol {
        const NAME: &'static str = "NSAccessibilityElement";
    }
);

extern_protocol!(
    pub unsafe trait NSAccessibilityGroup: NSAccessibilityElementProtocol {}

    unsafe impl ProtocolType for dyn NSAccessibilityGroup {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityButton: NSAccessibilityElementProtocol {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;

        #[method(accessibilityPerformPress)]
        unsafe fn accessibilityPerformPress(&self) -> bool;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityButton {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilitySwitch: NSAccessibilityButton {
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<NSString>>;

        #[optional]
        #[method(accessibilityPerformIncrement)]
        unsafe fn accessibilityPerformIncrement(&self) -> bool;

        #[optional]
        #[method(accessibilityPerformDecrement)]
        unsafe fn accessibilityPerformDecrement(&self) -> bool;
    }

    unsafe impl ProtocolType for dyn NSAccessibilitySwitch {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityRadioButton: NSAccessibilityButton {
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<NSNumber>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityRadioButton {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityCheckBox: NSAccessibilityButton {
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<NSNumber>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityCheckBox {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityStaticText: NSAccessibilityElementProtocol {
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<NSString>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityAttributedStringForRange:)]
        unsafe fn accessibilityAttributedStringForRange(
            &self,
            range: NSRange,
        ) -> Option<Retained<NSAttributedString>>;

        #[optional]
        #[method(accessibilityVisibleCharacterRange)]
        unsafe fn accessibilityVisibleCharacterRange(&self) -> NSRange;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityStaticText {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityNavigableStaticText: NSAccessibilityStaticText {
        #[method_id(@__retain_semantics Other accessibilityStringForRange:)]
        unsafe fn accessibilityStringForRange(&self, range: NSRange) -> Option<Retained<NSString>>;

        #[method(accessibilityLineForIndex:)]
        unsafe fn accessibilityLineForIndex(&self, index: NSInteger) -> NSInteger;

        #[method(accessibilityRangeForLine:)]
        unsafe fn accessibilityRangeForLine(&self, line_number: NSInteger) -> NSRange;

        #[method(accessibilityFrameForRange:)]
        unsafe fn accessibilityFrameForRange(&self, range: NSRange) -> NSRect;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityNavigableStaticText {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityProgressIndicator: NSAccessibilityGroup {
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<NSNumber>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityProgressIndicator {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityStepper: NSAccessibilityElementProtocol {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;

        #[method(accessibilityPerformIncrement)]
        unsafe fn accessibilityPerformIncrement(&self) -> bool;

        #[method(accessibilityPerformDecrement)]
        unsafe fn accessibilityPerformDecrement(&self) -> bool;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<AnyObject>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityStepper {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilitySlider: NSAccessibilityElementProtocol {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;

        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<AnyObject>>;

        #[method(accessibilityPerformIncrement)]
        unsafe fn accessibilityPerformIncrement(&self) -> bool;

        #[method(accessibilityPerformDecrement)]
        unsafe fn accessibilityPerformDecrement(&self) -> bool;
    }

    unsafe impl ProtocolType for dyn NSAccessibilitySlider {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityImage: NSAccessibilityElementProtocol {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityImage {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityContainsTransientUI:
        NSAccessibilityElementProtocol
    {
        #[method(accessibilityPerformShowAlternateUI)]
        unsafe fn accessibilityPerformShowAlternateUI(&self) -> bool;

        #[method(accessibilityPerformShowDefaultUI)]
        unsafe fn accessibilityPerformShowDefaultUI(&self) -> bool;

        #[method(isAccessibilityAlternateUIVisible)]
        unsafe fn isAccessibilityAlternateUIVisible(&self) -> bool;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityContainsTransientUI {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityTable: NSAccessibilityGroup {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;

        #[method_id(@__retain_semantics Other accessibilityRows)]
        unsafe fn accessibilityRows(
            &self,
        ) -> Option<Retained<NSArray<ProtocolObject<dyn NSAccessibilityRow>>>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilitySelectedRows)]
        unsafe fn accessibilitySelectedRows(
            &self,
        ) -> Option<Retained<NSArray<ProtocolObject<dyn NSAccessibilityRow>>>>;

        #[optional]
        #[method(setAccessibilitySelectedRows:)]
        unsafe fn setAccessibilitySelectedRows(
            &self,
            selected_rows: &NSArray<ProtocolObject<dyn NSAccessibilityRow>>,
        );

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityVisibleRows)]
        unsafe fn accessibilityVisibleRows(
            &self,
        ) -> Option<Retained<NSArray<ProtocolObject<dyn NSAccessibilityRow>>>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityColumns)]
        unsafe fn accessibilityColumns(&self) -> Option<Retained<NSArray>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityVisibleColumns)]
        unsafe fn accessibilityVisibleColumns(&self) -> Option<Retained<NSArray>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilitySelectedColumns)]
        unsafe fn accessibilitySelectedColumns(&self) -> Option<Retained<NSArray>>;

        #[deprecated]
        #[optional]
        #[method_id(@__retain_semantics Other accessibilityHeaderGroup)]
        unsafe fn accessibilityHeaderGroup(&self) -> Option<Retained<NSString>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilitySelectedCells)]
        unsafe fn accessibilitySelectedCells(&self) -> Option<Retained<NSArray>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityVisibleCells)]
        unsafe fn accessibilityVisibleCells(&self) -> Option<Retained<NSArray>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityRowHeaderUIElements)]
        unsafe fn accessibilityRowHeaderUIElements(&self) -> Option<Retained<NSArray>>;

        #[optional]
        #[method_id(@__retain_semantics Other accessibilityColumnHeaderUIElements)]
        unsafe fn accessibilityColumnHeaderUIElements(&self) -> Option<Retained<NSArray>>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityTable {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityOutline: NSAccessibilityTable {}

    unsafe impl ProtocolType for dyn NSAccessibilityOutline {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityList: NSAccessibilityTable {}

    unsafe impl ProtocolType for dyn NSAccessibilityList {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityRow: NSAccessibilityGroup {
        #[method(accessibilityIndex)]
        unsafe fn accessibilityIndex(&self) -> NSInteger;

        #[optional]
        #[method(accessibilityDisclosureLevel)]
        unsafe fn accessibilityDisclosureLevel(&self) -> NSInteger;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityRow {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityLayoutArea: NSAccessibilityGroup {
        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Retained<NSString>;

        #[method_id(@__retain_semantics Other accessibilityChildren)]
        unsafe fn accessibilityChildren(&self) -> Option<Retained<NSArray>>;

        #[method_id(@__retain_semantics Other accessibilitySelectedChildren)]
        unsafe fn accessibilitySelectedChildren(&self) -> Option<Retained<NSArray>>;

        #[method_id(@__retain_semantics Other accessibilityFocusedUIElement)]
        unsafe fn accessibilityFocusedUIElement(&self) -> Retained<AnyObject>;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityLayoutArea {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityLayoutItem: NSAccessibilityGroup {
        #[optional]
        #[method(setAccessibilityFrame:)]
        unsafe fn setAccessibilityFrame(&self, frame: NSRect);
    }

    unsafe impl ProtocolType for dyn NSAccessibilityLayoutItem {}
);

extern_protocol!(
    pub unsafe trait NSAccessibilityElementLoading: NSObjectProtocol {
        #[cfg(feature = "NSAccessibilityConstants")]
        #[method_id(@__retain_semantics Other accessibilityElementWithToken:)]
        unsafe fn accessibilityElementWithToken(
            &self,
            token: &NSAccessibilityLoadingToken,
        ) -> Option<Retained<ProtocolObject<dyn NSAccessibilityElementProtocol>>>;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[optional]
        #[method(accessibilityRangeInTargetElementWithToken:)]
        unsafe fn accessibilityRangeInTargetElementWithToken(
            &self,
            token: &NSAccessibilityLoadingToken,
        ) -> NSRange;
    }

    unsafe impl ProtocolType for dyn NSAccessibilityElementLoading {}
);

extern_protocol!(
    pub unsafe trait NSAccessibility: NSObjectProtocol {
        #[method(isAccessibilityElement)]
        unsafe fn isAccessibilityElement(&self) -> bool;

        #[method(setAccessibilityElement:)]
        unsafe fn setAccessibilityElement(&self, accessibility_element: bool);

        #[method(accessibilityFrame)]
        unsafe fn accessibilityFrame(&self) -> NSRect;

        #[method(setAccessibilityFrame:)]
        unsafe fn setAccessibilityFrame(&self, accessibility_frame: NSRect);

        #[method(isAccessibilityFocused)]
        unsafe fn isAccessibilityFocused(&self) -> bool;

        #[method(setAccessibilityFocused:)]
        unsafe fn setAccessibilityFocused(&self, accessibility_focused: bool);

        #[method(accessibilityActivationPoint)]
        unsafe fn accessibilityActivationPoint(&self) -> NSPoint;

        #[method(setAccessibilityActivationPoint:)]
        unsafe fn setAccessibilityActivationPoint(&self, accessibility_activation_point: NSPoint);

        #[method_id(@__retain_semantics Other accessibilityTopLevelUIElement)]
        unsafe fn accessibilityTopLevelUIElement(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityTopLevelUIElement:)]
        unsafe fn setAccessibilityTopLevelUIElement(
            &self,
            accessibility_top_level_ui_element: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityURL)]
        unsafe fn accessibilityURL(&self) -> Option<Retained<NSURL>>;

        #[method(setAccessibilityURL:)]
        unsafe fn setAccessibilityURL(&self, accessibility_url: Option<&NSURL>);

        #[method_id(@__retain_semantics Other accessibilityValue)]
        unsafe fn accessibilityValue(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityValue:)]
        unsafe fn setAccessibilityValue(&self, accessibility_value: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityValueDescription)]
        unsafe fn accessibilityValueDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityValueDescription:)]
        unsafe fn setAccessibilityValueDescription(
            &self,
            accessibility_value_description: Option<&NSString>,
        );

        #[method_id(@__retain_semantics Other accessibilityVisibleChildren)]
        unsafe fn accessibilityVisibleChildren(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityVisibleChildren:)]
        unsafe fn setAccessibilityVisibleChildren(
            &self,
            accessibility_visible_children: Option<&NSArray>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method_id(@__retain_semantics Other accessibilitySubrole)]
        unsafe fn accessibilitySubrole(&self) -> Option<Retained<NSAccessibilitySubrole>>;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilitySubrole:)]
        unsafe fn setAccessibilitySubrole(
            &self,
            accessibility_subrole: Option<&NSAccessibilitySubrole>,
        );

        #[method_id(@__retain_semantics Other accessibilityTitle)]
        unsafe fn accessibilityTitle(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityTitle:)]
        unsafe fn setAccessibilityTitle(&self, accessibility_title: Option<&NSString>);

        #[method_id(@__retain_semantics Other accessibilityTitleUIElement)]
        unsafe fn accessibilityTitleUIElement(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityTitleUIElement:)]
        unsafe fn setAccessibilityTitleUIElement(
            &self,
            accessibility_title_ui_element: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityNextContents)]
        unsafe fn accessibilityNextContents(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityNextContents:)]
        unsafe fn setAccessibilityNextContents(
            &self,
            accessibility_next_contents: Option<&NSArray>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilityOrientation)]
        unsafe fn accessibilityOrientation(&self) -> NSAccessibilityOrientation;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityOrientation:)]
        unsafe fn setAccessibilityOrientation(
            &self,
            accessibility_orientation: NSAccessibilityOrientation,
        );

        #[method_id(@__retain_semantics Other accessibilityOverflowButton)]
        unsafe fn accessibilityOverflowButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityOverflowButton:)]
        unsafe fn setAccessibilityOverflowButton(
            &self,
            accessibility_overflow_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityParent)]
        unsafe fn accessibilityParent(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityParent:)]
        unsafe fn setAccessibilityParent(&self, accessibility_parent: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityPlaceholderValue)]
        unsafe fn accessibilityPlaceholderValue(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityPlaceholderValue:)]
        unsafe fn setAccessibilityPlaceholderValue(
            &self,
            accessibility_placeholder_value: Option<&NSString>,
        );

        #[method_id(@__retain_semantics Other accessibilityPreviousContents)]
        unsafe fn accessibilityPreviousContents(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityPreviousContents:)]
        unsafe fn setAccessibilityPreviousContents(
            &self,
            accessibility_previous_contents: Option<&NSArray>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method_id(@__retain_semantics Other accessibilityRole)]
        unsafe fn accessibilityRole(&self) -> Option<Retained<NSAccessibilityRole>>;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityRole:)]
        unsafe fn setAccessibilityRole(&self, accessibility_role: Option<&NSAccessibilityRole>);

        #[method_id(@__retain_semantics Other accessibilityRoleDescription)]
        unsafe fn accessibilityRoleDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityRoleDescription:)]
        unsafe fn setAccessibilityRoleDescription(
            &self,
            accessibility_role_description: Option<&NSString>,
        );

        #[method_id(@__retain_semantics Other accessibilitySearchButton)]
        unsafe fn accessibilitySearchButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilitySearchButton:)]
        unsafe fn setAccessibilitySearchButton(
            &self,
            accessibility_search_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilitySearchMenu)]
        unsafe fn accessibilitySearchMenu(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilitySearchMenu:)]
        unsafe fn setAccessibilitySearchMenu(&self, accessibility_search_menu: Option<&AnyObject>);

        #[method(isAccessibilitySelected)]
        unsafe fn isAccessibilitySelected(&self) -> bool;

        #[method(setAccessibilitySelected:)]
        unsafe fn setAccessibilitySelected(&self, accessibility_selected: bool);

        #[method_id(@__retain_semantics Other accessibilitySelectedChildren)]
        unsafe fn accessibilitySelectedChildren(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySelectedChildren:)]
        unsafe fn setAccessibilitySelectedChildren(
            &self,
            accessibility_selected_children: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityServesAsTitleForUIElements)]
        unsafe fn accessibilityServesAsTitleForUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityServesAsTitleForUIElements:)]
        unsafe fn setAccessibilityServesAsTitleForUIElements(
            &self,
            accessibility_serves_as_title_for_ui_elements: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityShownMenu)]
        unsafe fn accessibilityShownMenu(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityShownMenu:)]
        unsafe fn setAccessibilityShownMenu(&self, accessibility_shown_menu: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityMinValue)]
        unsafe fn accessibilityMinValue(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMinValue:)]
        unsafe fn setAccessibilityMinValue(&self, accessibility_min_value: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityMaxValue)]
        unsafe fn accessibilityMaxValue(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMaxValue:)]
        unsafe fn setAccessibilityMaxValue(&self, accessibility_max_value: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityLinkedUIElements)]
        unsafe fn accessibilityLinkedUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityLinkedUIElements:)]
        unsafe fn setAccessibilityLinkedUIElements(
            &self,
            accessibility_linked_ui_elements: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityWindow)]
        unsafe fn accessibilityWindow(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityWindow:)]
        unsafe fn setAccessibilityWindow(&self, accessibility_window: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityIdentifier)]
        unsafe fn accessibilityIdentifier(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityIdentifier:)]
        unsafe fn setAccessibilityIdentifier(&self, accessibility_identifier: Option<&NSString>);

        #[method_id(@__retain_semantics Other accessibilityHelp)]
        unsafe fn accessibilityHelp(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityHelp:)]
        unsafe fn setAccessibilityHelp(&self, accessibility_help: Option<&NSString>);

        #[method_id(@__retain_semantics Other accessibilityFilename)]
        unsafe fn accessibilityFilename(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityFilename:)]
        unsafe fn setAccessibilityFilename(&self, accessibility_filename: Option<&NSString>);

        #[method(isAccessibilityExpanded)]
        unsafe fn isAccessibilityExpanded(&self) -> bool;

        #[method(setAccessibilityExpanded:)]
        unsafe fn setAccessibilityExpanded(&self, accessibility_expanded: bool);

        #[method(isAccessibilityEdited)]
        unsafe fn isAccessibilityEdited(&self) -> bool;

        #[method(setAccessibilityEdited:)]
        unsafe fn setAccessibilityEdited(&self, accessibility_edited: bool);

        #[method(isAccessibilityEnabled)]
        unsafe fn isAccessibilityEnabled(&self) -> bool;

        #[method(setAccessibilityEnabled:)]
        unsafe fn setAccessibilityEnabled(&self, accessibility_enabled: bool);

        #[method_id(@__retain_semantics Other accessibilityChildren)]
        unsafe fn accessibilityChildren(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityChildren:)]
        unsafe fn setAccessibilityChildren(&self, accessibility_children: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityChildrenInNavigationOrder)]
        unsafe fn accessibilityChildrenInNavigationOrder(
            &self,
        ) -> Option<Retained<NSArray<ProtocolObject<dyn NSAccessibilityElementProtocol>>>>;

        #[method(setAccessibilityChildrenInNavigationOrder:)]
        unsafe fn setAccessibilityChildrenInNavigationOrder(
            &self,
            accessibility_children_in_navigation_order: Option<
                &NSArray<ProtocolObject<dyn NSAccessibilityElementProtocol>>,
            >,
        );

        #[method_id(@__retain_semantics Other accessibilityClearButton)]
        unsafe fn accessibilityClearButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityClearButton:)]
        unsafe fn setAccessibilityClearButton(
            &self,
            accessibility_clear_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityCancelButton)]
        unsafe fn accessibilityCancelButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityCancelButton:)]
        unsafe fn setAccessibilityCancelButton(
            &self,
            accessibility_cancel_button: Option<&AnyObject>,
        );

        #[method(isAccessibilityProtectedContent)]
        unsafe fn isAccessibilityProtectedContent(&self) -> bool;

        #[method(setAccessibilityProtectedContent:)]
        unsafe fn setAccessibilityProtectedContent(&self, accessibility_protected_content: bool);

        #[method_id(@__retain_semantics Other accessibilityContents)]
        unsafe fn accessibilityContents(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityContents:)]
        unsafe fn setAccessibilityContents(&self, accessibility_contents: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityLabel)]
        unsafe fn accessibilityLabel(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityLabel:)]
        unsafe fn setAccessibilityLabel(&self, accessibility_label: Option<&NSString>);

        #[method(isAccessibilityAlternateUIVisible)]
        unsafe fn isAccessibilityAlternateUIVisible(&self) -> bool;

        #[method(setAccessibilityAlternateUIVisible:)]
        unsafe fn setAccessibilityAlternateUIVisible(
            &self,
            accessibility_alternate_ui_visible: bool,
        );

        #[method_id(@__retain_semantics Other accessibilitySharedFocusElements)]
        unsafe fn accessibilitySharedFocusElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySharedFocusElements:)]
        unsafe fn setAccessibilitySharedFocusElements(
            &self,
            accessibility_shared_focus_elements: Option<&NSArray>,
        );

        #[method(isAccessibilityRequired)]
        unsafe fn isAccessibilityRequired(&self) -> bool;

        #[method(setAccessibilityRequired:)]
        unsafe fn setAccessibilityRequired(&self, accessibility_required: bool);

        #[cfg(feature = "NSAccessibilityCustomRotor")]
        #[method_id(@__retain_semantics Other accessibilityCustomRotors)]
        unsafe fn accessibilityCustomRotors(&self)
            -> Retained<NSArray<NSAccessibilityCustomRotor>>;

        #[cfg(feature = "NSAccessibilityCustomRotor")]
        #[method(setAccessibilityCustomRotors:)]
        unsafe fn setAccessibilityCustomRotors(
            &self,
            accessibility_custom_rotors: &NSArray<NSAccessibilityCustomRotor>,
        );

        #[method_id(@__retain_semantics Other accessibilityUserInputLabels)]
        unsafe fn accessibilityUserInputLabels(&self) -> Option<Retained<NSArray<NSString>>>;

        #[method(setAccessibilityUserInputLabels:)]
        unsafe fn setAccessibilityUserInputLabels(
            &self,
            accessibility_user_input_labels: Option<&NSArray<NSString>>,
        );

        #[method_id(@__retain_semantics Other accessibilityAttributedUserInputLabels)]
        unsafe fn accessibilityAttributedUserInputLabels(
            &self,
        ) -> Option<Retained<NSArray<NSAttributedString>>>;

        #[method(setAccessibilityAttributedUserInputLabels:)]
        unsafe fn setAccessibilityAttributedUserInputLabels(
            &self,
            accessibility_attributed_user_input_labels: Option<&NSArray<NSAttributedString>>,
        );

        #[method_id(@__retain_semantics Other accessibilityApplicationFocusedUIElement)]
        unsafe fn accessibilityApplicationFocusedUIElement(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityApplicationFocusedUIElement:)]
        unsafe fn setAccessibilityApplicationFocusedUIElement(
            &self,
            accessibility_application_focused_ui_element: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityMainWindow)]
        unsafe fn accessibilityMainWindow(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMainWindow:)]
        unsafe fn setAccessibilityMainWindow(&self, accessibility_main_window: Option<&AnyObject>);

        #[method(isAccessibilityHidden)]
        unsafe fn isAccessibilityHidden(&self) -> bool;

        #[method(setAccessibilityHidden:)]
        unsafe fn setAccessibilityHidden(&self, accessibility_hidden: bool);

        #[method(isAccessibilityFrontmost)]
        unsafe fn isAccessibilityFrontmost(&self) -> bool;

        #[method(setAccessibilityFrontmost:)]
        unsafe fn setAccessibilityFrontmost(&self, accessibility_frontmost: bool);

        #[method_id(@__retain_semantics Other accessibilityFocusedWindow)]
        unsafe fn accessibilityFocusedWindow(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityFocusedWindow:)]
        unsafe fn setAccessibilityFocusedWindow(
            &self,
            accessibility_focused_window: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityWindows)]
        unsafe fn accessibilityWindows(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityWindows:)]
        unsafe fn setAccessibilityWindows(&self, accessibility_windows: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityExtrasMenuBar)]
        unsafe fn accessibilityExtrasMenuBar(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityExtrasMenuBar:)]
        unsafe fn setAccessibilityExtrasMenuBar(
            &self,
            accessibility_extras_menu_bar: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityMenuBar)]
        unsafe fn accessibilityMenuBar(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMenuBar:)]
        unsafe fn setAccessibilityMenuBar(&self, accessibility_menu_bar: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityColumnTitles)]
        unsafe fn accessibilityColumnTitles(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityColumnTitles:)]
        unsafe fn setAccessibilityColumnTitles(
            &self,
            accessibility_column_titles: Option<&NSArray>,
        );

        #[method(isAccessibilityOrderedByRow)]
        unsafe fn isAccessibilityOrderedByRow(&self) -> bool;

        #[method(setAccessibilityOrderedByRow:)]
        unsafe fn setAccessibilityOrderedByRow(&self, accessibility_ordered_by_row: bool);

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilityHorizontalUnits)]
        unsafe fn accessibilityHorizontalUnits(&self) -> NSAccessibilityUnits;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityHorizontalUnits:)]
        unsafe fn setAccessibilityHorizontalUnits(
            &self,
            accessibility_horizontal_units: NSAccessibilityUnits,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilityVerticalUnits)]
        unsafe fn accessibilityVerticalUnits(&self) -> NSAccessibilityUnits;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityVerticalUnits:)]
        unsafe fn setAccessibilityVerticalUnits(
            &self,
            accessibility_vertical_units: NSAccessibilityUnits,
        );

        #[method_id(@__retain_semantics Other accessibilityHorizontalUnitDescription)]
        unsafe fn accessibilityHorizontalUnitDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityHorizontalUnitDescription:)]
        unsafe fn setAccessibilityHorizontalUnitDescription(
            &self,
            accessibility_horizontal_unit_description: Option<&NSString>,
        );

        #[method_id(@__retain_semantics Other accessibilityVerticalUnitDescription)]
        unsafe fn accessibilityVerticalUnitDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityVerticalUnitDescription:)]
        unsafe fn setAccessibilityVerticalUnitDescription(
            &self,
            accessibility_vertical_unit_description: Option<&NSString>,
        );

        #[method(accessibilityLayoutPointForScreenPoint:)]
        unsafe fn accessibilityLayoutPointForScreenPoint(&self, point: NSPoint) -> NSPoint;

        #[method(accessibilityLayoutSizeForScreenSize:)]
        unsafe fn accessibilityLayoutSizeForScreenSize(&self, size: NSSize) -> NSSize;

        #[method(accessibilityScreenPointForLayoutPoint:)]
        unsafe fn accessibilityScreenPointForLayoutPoint(&self, point: NSPoint) -> NSPoint;

        #[method(accessibilityScreenSizeForLayoutSize:)]
        unsafe fn accessibilityScreenSizeForLayoutSize(&self, size: NSSize) -> NSSize;

        #[method_id(@__retain_semantics Other accessibilityHandles)]
        unsafe fn accessibilityHandles(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityHandles:)]
        unsafe fn setAccessibilityHandles(&self, accessibility_handles: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityWarningValue)]
        unsafe fn accessibilityWarningValue(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityWarningValue:)]
        unsafe fn setAccessibilityWarningValue(
            &self,
            accessibility_warning_value: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityCriticalValue)]
        unsafe fn accessibilityCriticalValue(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityCriticalValue:)]
        unsafe fn setAccessibilityCriticalValue(
            &self,
            accessibility_critical_value: Option<&AnyObject>,
        );

        #[method(isAccessibilityDisclosed)]
        unsafe fn isAccessibilityDisclosed(&self) -> bool;

        #[method(setAccessibilityDisclosed:)]
        unsafe fn setAccessibilityDisclosed(&self, accessibility_disclosed: bool);

        #[method_id(@__retain_semantics Other accessibilityDisclosedByRow)]
        unsafe fn accessibilityDisclosedByRow(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityDisclosedByRow:)]
        unsafe fn setAccessibilityDisclosedByRow(
            &self,
            accessibility_disclosed_by_row: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityDisclosedRows)]
        unsafe fn accessibilityDisclosedRows(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityDisclosedRows:)]
        unsafe fn setAccessibilityDisclosedRows(
            &self,
            accessibility_disclosed_rows: Option<&AnyObject>,
        );

        #[method(accessibilityDisclosureLevel)]
        unsafe fn accessibilityDisclosureLevel(&self) -> NSInteger;

        #[method(setAccessibilityDisclosureLevel:)]
        unsafe fn setAccessibilityDisclosureLevel(&self, accessibility_disclosure_level: NSInteger);

        #[method_id(@__retain_semantics Other accessibilityMarkerUIElements)]
        unsafe fn accessibilityMarkerUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityMarkerUIElements:)]
        unsafe fn setAccessibilityMarkerUIElements(
            &self,
            accessibility_marker_ui_elements: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityMarkerValues)]
        unsafe fn accessibilityMarkerValues(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMarkerValues:)]
        unsafe fn setAccessibilityMarkerValues(
            &self,
            accessibility_marker_values: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityMarkerGroupUIElement)]
        unsafe fn accessibilityMarkerGroupUIElement(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMarkerGroupUIElement:)]
        unsafe fn setAccessibilityMarkerGroupUIElement(
            &self,
            accessibility_marker_group_ui_element: Option<&AnyObject>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilityUnits)]
        unsafe fn accessibilityUnits(&self) -> NSAccessibilityUnits;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityUnits:)]
        unsafe fn setAccessibilityUnits(&self, accessibility_units: NSAccessibilityUnits);

        #[method_id(@__retain_semantics Other accessibilityUnitDescription)]
        unsafe fn accessibilityUnitDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityUnitDescription:)]
        unsafe fn setAccessibilityUnitDescription(
            &self,
            accessibility_unit_description: Option<&NSString>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilityRulerMarkerType)]
        unsafe fn accessibilityRulerMarkerType(&self) -> NSAccessibilityRulerMarkerType;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilityRulerMarkerType:)]
        unsafe fn setAccessibilityRulerMarkerType(
            &self,
            accessibility_ruler_marker_type: NSAccessibilityRulerMarkerType,
        );

        #[method_id(@__retain_semantics Other accessibilityMarkerTypeDescription)]
        unsafe fn accessibilityMarkerTypeDescription(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityMarkerTypeDescription:)]
        unsafe fn setAccessibilityMarkerTypeDescription(
            &self,
            accessibility_marker_type_description: Option<&NSString>,
        );

        #[method_id(@__retain_semantics Other accessibilityHorizontalScrollBar)]
        unsafe fn accessibilityHorizontalScrollBar(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityHorizontalScrollBar:)]
        unsafe fn setAccessibilityHorizontalScrollBar(
            &self,
            accessibility_horizontal_scroll_bar: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityVerticalScrollBar)]
        unsafe fn accessibilityVerticalScrollBar(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityVerticalScrollBar:)]
        unsafe fn setAccessibilityVerticalScrollBar(
            &self,
            accessibility_vertical_scroll_bar: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityAllowedValues)]
        unsafe fn accessibilityAllowedValues(&self) -> Option<Retained<NSArray<NSNumber>>>;

        #[method(setAccessibilityAllowedValues:)]
        unsafe fn setAccessibilityAllowedValues(
            &self,
            accessibility_allowed_values: Option<&NSArray<NSNumber>>,
        );

        #[method_id(@__retain_semantics Other accessibilityLabelUIElements)]
        unsafe fn accessibilityLabelUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityLabelUIElements:)]
        unsafe fn setAccessibilityLabelUIElements(
            &self,
            accessibility_label_ui_elements: Option<&NSArray>,
        );

        #[method(accessibilityLabelValue)]
        unsafe fn accessibilityLabelValue(&self) -> c_float;

        #[method(setAccessibilityLabelValue:)]
        unsafe fn setAccessibilityLabelValue(&self, accessibility_label_value: c_float);

        #[method_id(@__retain_semantics Other accessibilitySplitters)]
        unsafe fn accessibilitySplitters(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySplitters:)]
        unsafe fn setAccessibilitySplitters(&self, accessibility_splitters: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityDecrementButton)]
        unsafe fn accessibilityDecrementButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityDecrementButton:)]
        unsafe fn setAccessibilityDecrementButton(
            &self,
            accessibility_decrement_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityIncrementButton)]
        unsafe fn accessibilityIncrementButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityIncrementButton:)]
        unsafe fn setAccessibilityIncrementButton(
            &self,
            accessibility_increment_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityTabs)]
        unsafe fn accessibilityTabs(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityTabs:)]
        unsafe fn setAccessibilityTabs(&self, accessibility_tabs: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityHeader)]
        unsafe fn accessibilityHeader(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityHeader:)]
        unsafe fn setAccessibilityHeader(&self, accessibility_header: Option<&AnyObject>);

        #[method(accessibilityColumnCount)]
        unsafe fn accessibilityColumnCount(&self) -> NSInteger;

        #[method(setAccessibilityColumnCount:)]
        unsafe fn setAccessibilityColumnCount(&self, accessibility_column_count: NSInteger);

        #[method(accessibilityRowCount)]
        unsafe fn accessibilityRowCount(&self) -> NSInteger;

        #[method(setAccessibilityRowCount:)]
        unsafe fn setAccessibilityRowCount(&self, accessibility_row_count: NSInteger);

        #[method(accessibilityIndex)]
        unsafe fn accessibilityIndex(&self) -> NSInteger;

        #[method(setAccessibilityIndex:)]
        unsafe fn setAccessibilityIndex(&self, accessibility_index: NSInteger);

        #[method_id(@__retain_semantics Other accessibilityColumns)]
        unsafe fn accessibilityColumns(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityColumns:)]
        unsafe fn setAccessibilityColumns(&self, accessibility_columns: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityRows)]
        unsafe fn accessibilityRows(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityRows:)]
        unsafe fn setAccessibilityRows(&self, accessibility_rows: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilityVisibleRows)]
        unsafe fn accessibilityVisibleRows(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityVisibleRows:)]
        unsafe fn setAccessibilityVisibleRows(&self, accessibility_visible_rows: Option<&NSArray>);

        #[method_id(@__retain_semantics Other accessibilitySelectedRows)]
        unsafe fn accessibilitySelectedRows(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySelectedRows:)]
        unsafe fn setAccessibilitySelectedRows(
            &self,
            accessibility_selected_rows: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityVisibleColumns)]
        unsafe fn accessibilityVisibleColumns(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityVisibleColumns:)]
        unsafe fn setAccessibilityVisibleColumns(
            &self,
            accessibility_visible_columns: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilitySelectedColumns)]
        unsafe fn accessibilitySelectedColumns(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySelectedColumns:)]
        unsafe fn setAccessibilitySelectedColumns(
            &self,
            accessibility_selected_columns: Option<&NSArray>,
        );

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(accessibilitySortDirection)]
        unsafe fn accessibilitySortDirection(&self) -> NSAccessibilitySortDirection;

        #[cfg(feature = "NSAccessibilityConstants")]
        #[method(setAccessibilitySortDirection:)]
        unsafe fn setAccessibilitySortDirection(
            &self,
            accessibility_sort_direction: NSAccessibilitySortDirection,
        );

        #[method_id(@__retain_semantics Other accessibilityRowHeaderUIElements)]
        unsafe fn accessibilityRowHeaderUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityRowHeaderUIElements:)]
        unsafe fn setAccessibilityRowHeaderUIElements(
            &self,
            accessibility_row_header_ui_elements: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilitySelectedCells)]
        unsafe fn accessibilitySelectedCells(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySelectedCells:)]
        unsafe fn setAccessibilitySelectedCells(
            &self,
            accessibility_selected_cells: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityVisibleCells)]
        unsafe fn accessibilityVisibleCells(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityVisibleCells:)]
        unsafe fn setAccessibilityVisibleCells(
            &self,
            accessibility_visible_cells: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityColumnHeaderUIElements)]
        unsafe fn accessibilityColumnHeaderUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilityColumnHeaderUIElements:)]
        unsafe fn setAccessibilityColumnHeaderUIElements(
            &self,
            accessibility_column_header_ui_elements: Option<&NSArray>,
        );

        #[method_id(@__retain_semantics Other accessibilityCellForColumn:row:)]
        unsafe fn accessibilityCellForColumn_row(
            &self,
            column: NSInteger,
            row: NSInteger,
        ) -> Option<Retained<AnyObject>>;

        #[method(accessibilityRowIndexRange)]
        unsafe fn accessibilityRowIndexRange(&self) -> NSRange;

        #[method(setAccessibilityRowIndexRange:)]
        unsafe fn setAccessibilityRowIndexRange(&self, accessibility_row_index_range: NSRange);

        #[method(accessibilityColumnIndexRange)]
        unsafe fn accessibilityColumnIndexRange(&self) -> NSRange;

        #[method(setAccessibilityColumnIndexRange:)]
        unsafe fn setAccessibilityColumnIndexRange(
            &self,
            accessibility_column_index_range: NSRange,
        );

        #[method(accessibilityInsertionPointLineNumber)]
        unsafe fn accessibilityInsertionPointLineNumber(&self) -> NSInteger;

        #[method(setAccessibilityInsertionPointLineNumber:)]
        unsafe fn setAccessibilityInsertionPointLineNumber(
            &self,
            accessibility_insertion_point_line_number: NSInteger,
        );

        #[method(accessibilitySharedCharacterRange)]
        unsafe fn accessibilitySharedCharacterRange(&self) -> NSRange;

        #[method(setAccessibilitySharedCharacterRange:)]
        unsafe fn setAccessibilitySharedCharacterRange(
            &self,
            accessibility_shared_character_range: NSRange,
        );

        #[method_id(@__retain_semantics Other accessibilitySharedTextUIElements)]
        unsafe fn accessibilitySharedTextUIElements(&self) -> Option<Retained<NSArray>>;

        #[method(setAccessibilitySharedTextUIElements:)]
        unsafe fn setAccessibilitySharedTextUIElements(
            &self,
            accessibility_shared_text_ui_elements: Option<&NSArray>,
        );

        #[method(accessibilityVisibleCharacterRange)]
        unsafe fn accessibilityVisibleCharacterRange(&self) -> NSRange;

        #[method(setAccessibilityVisibleCharacterRange:)]
        unsafe fn setAccessibilityVisibleCharacterRange(
            &self,
            accessibility_visible_character_range: NSRange,
        );

        #[method(accessibilityNumberOfCharacters)]
        unsafe fn accessibilityNumberOfCharacters(&self) -> NSInteger;

        #[method(setAccessibilityNumberOfCharacters:)]
        unsafe fn setAccessibilityNumberOfCharacters(
            &self,
            accessibility_number_of_characters: NSInteger,
        );

        #[method_id(@__retain_semantics Other accessibilitySelectedText)]
        unsafe fn accessibilitySelectedText(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilitySelectedText:)]
        unsafe fn setAccessibilitySelectedText(
            &self,
            accessibility_selected_text: Option<&NSString>,
        );

        #[method(accessibilitySelectedTextRange)]
        unsafe fn accessibilitySelectedTextRange(&self) -> NSRange;

        #[method(setAccessibilitySelectedTextRange:)]
        unsafe fn setAccessibilitySelectedTextRange(
            &self,
            accessibility_selected_text_range: NSRange,
        );

        #[method_id(@__retain_semantics Other accessibilitySelectedTextRanges)]
        unsafe fn accessibilitySelectedTextRanges(&self) -> Option<Retained<NSArray<NSValue>>>;

        #[method(setAccessibilitySelectedTextRanges:)]
        unsafe fn setAccessibilitySelectedTextRanges(
            &self,
            accessibility_selected_text_ranges: Option<&NSArray<NSValue>>,
        );

        #[method_id(@__retain_semantics Other accessibilityAttributedStringForRange:)]
        unsafe fn accessibilityAttributedStringForRange(
            &self,
            range: NSRange,
        ) -> Option<Retained<NSAttributedString>>;

        #[method(accessibilityRangeForLine:)]
        unsafe fn accessibilityRangeForLine(&self, line: NSInteger) -> NSRange;

        #[method_id(@__retain_semantics Other accessibilityStringForRange:)]
        unsafe fn accessibilityStringForRange(&self, range: NSRange) -> Option<Retained<NSString>>;

        #[method(accessibilityRangeForPosition:)]
        unsafe fn accessibilityRangeForPosition(&self, point: NSPoint) -> NSRange;

        #[method(accessibilityRangeForIndex:)]
        unsafe fn accessibilityRangeForIndex(&self, index: NSInteger) -> NSRange;

        #[method(accessibilityFrameForRange:)]
        unsafe fn accessibilityFrameForRange(&self, range: NSRange) -> NSRect;

        #[method_id(@__retain_semantics Other accessibilityRTFForRange:)]
        unsafe fn accessibilityRTFForRange(&self, range: NSRange) -> Option<Retained<NSData>>;

        #[method(accessibilityStyleRangeForIndex:)]
        unsafe fn accessibilityStyleRangeForIndex(&self, index: NSInteger) -> NSRange;

        #[method(accessibilityLineForIndex:)]
        unsafe fn accessibilityLineForIndex(&self, index: NSInteger) -> NSInteger;

        #[method_id(@__retain_semantics Other accessibilityToolbarButton)]
        unsafe fn accessibilityToolbarButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityToolbarButton:)]
        unsafe fn setAccessibilityToolbarButton(
            &self,
            accessibility_toolbar_button: Option<&AnyObject>,
        );

        #[method(isAccessibilityModal)]
        unsafe fn isAccessibilityModal(&self) -> bool;

        #[method(setAccessibilityModal:)]
        unsafe fn setAccessibilityModal(&self, accessibility_modal: bool);

        #[method_id(@__retain_semantics Other accessibilityProxy)]
        unsafe fn accessibilityProxy(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityProxy:)]
        unsafe fn setAccessibilityProxy(&self, accessibility_proxy: Option<&AnyObject>);

        #[method(isAccessibilityMain)]
        unsafe fn isAccessibilityMain(&self) -> bool;

        #[method(setAccessibilityMain:)]
        unsafe fn setAccessibilityMain(&self, accessibility_main: bool);

        #[method_id(@__retain_semantics Other accessibilityFullScreenButton)]
        unsafe fn accessibilityFullScreenButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityFullScreenButton:)]
        unsafe fn setAccessibilityFullScreenButton(
            &self,
            accessibility_full_screen_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityGrowArea)]
        unsafe fn accessibilityGrowArea(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityGrowArea:)]
        unsafe fn setAccessibilityGrowArea(&self, accessibility_grow_area: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityDocument)]
        unsafe fn accessibilityDocument(&self) -> Option<Retained<NSString>>;

        #[method(setAccessibilityDocument:)]
        unsafe fn setAccessibilityDocument(&self, accessibility_document: Option<&NSString>);

        #[method_id(@__retain_semantics Other accessibilityDefaultButton)]
        unsafe fn accessibilityDefaultButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityDefaultButton:)]
        unsafe fn setAccessibilityDefaultButton(
            &self,
            accessibility_default_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityCloseButton)]
        unsafe fn accessibilityCloseButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityCloseButton:)]
        unsafe fn setAccessibilityCloseButton(
            &self,
            accessibility_close_button: Option<&AnyObject>,
        );

        #[method_id(@__retain_semantics Other accessibilityZoomButton)]
        unsafe fn accessibilityZoomButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityZoomButton:)]
        unsafe fn setAccessibilityZoomButton(&self, accessibility_zoom_button: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other accessibilityMinimizeButton)]
        unsafe fn accessibilityMinimizeButton(&self) -> Option<Retained<AnyObject>>;

        #[method(setAccessibilityMinimizeButton:)]
        unsafe fn setAccessibilityMinimizeButton(
            &self,
            accessibility_minimize_button: Option<&AnyObject>,
        );

        #[method(isAccessibilityMinimized)]
        unsafe fn isAccessibilityMinimized(&self) -> bool;

        #[method(setAccessibilityMinimized:)]
        unsafe fn setAccessibilityMinimized(&self, accessibility_minimized: bool);

        #[cfg(feature = "NSAccessibilityCustomAction")]
        #[method_id(@__retain_semantics Other accessibilityCustomActions)]
        unsafe fn accessibilityCustomActions(
            &self,
        ) -> Option<Retained<NSArray<NSAccessibilityCustomAction>>>;

        #[cfg(feature = "NSAccessibilityCustomAction")]
        #[method(setAccessibilityCustomActions:)]
        unsafe fn setAccessibilityCustomActions(
            &self,
            accessibility_custom_actions: Option<&NSArray<NSAccessibilityCustomAction>>,
        );

        #[method(accessibilityPerformCancel)]
        unsafe fn accessibilityPerformCancel(&self) -> bool;

        #[method(accessibilityPerformConfirm)]
        unsafe fn accessibilityPerformConfirm(&self) -> bool;

        #[method(accessibilityPerformDecrement)]
        unsafe fn accessibilityPerformDecrement(&self) -> bool;

        #[method(accessibilityPerformDelete)]
        unsafe fn accessibilityPerformDelete(&self) -> bool;

        #[method(accessibilityPerformIncrement)]
        unsafe fn accessibilityPerformIncrement(&self) -> bool;

        #[method(accessibilityPerformPick)]
        unsafe fn accessibilityPerformPick(&self) -> bool;

        #[method(accessibilityPerformPress)]
        unsafe fn accessibilityPerformPress(&self) -> bool;

        #[method(accessibilityPerformRaise)]
        unsafe fn accessibilityPerformRaise(&self) -> bool;

        #[method(accessibilityPerformShowAlternateUI)]
        unsafe fn accessibilityPerformShowAlternateUI(&self) -> bool;

        #[method(accessibilityPerformShowDefaultUI)]
        unsafe fn accessibilityPerformShowDefaultUI(&self) -> bool;

        #[method(accessibilityPerformShowMenu)]
        unsafe fn accessibilityPerformShowMenu(&self) -> bool;

        #[method(isAccessibilitySelectorAllowed:)]
        unsafe fn isAccessibilitySelectorAllowed(&self, selector: Sel) -> bool;
    }

    unsafe impl ProtocolType for dyn NSAccessibility {}
);
