@@ -130,7 +130,102 @@ inline UIAccessibilityTraits RCTUIAccessibilityTraitsFromAccessibilityTraits(
130130 }
131131 return result;
132132};
133- #endif // [macOS]
133+ #else // [macOS
134+ inline NSAccessibilityRole RCTUIAccessibilityRoleFromAccessibilityTraits (
135+ facebook::react::AccessibilityTraits accessibilityTraits)
136+ {
137+ using AccessibilityTraits = facebook::react::AccessibilityTraits;
138+ if ((accessibilityTraits & AccessibilityTraits::Button) != AccessibilityTraits::None) {
139+ if ((accessibilityTraits & AccessibilityTraits::Bar) != AccessibilityTraits::None) {
140+ return NSAccessibilityToolbarRole ;
141+ }
142+ if ((accessibilityTraits & AccessibilityTraits::PopUp) != AccessibilityTraits::None) {
143+ return NSAccessibilityPopUpButtonRole ;
144+ }
145+ if ((accessibilityTraits & AccessibilityTraits::Menu) != AccessibilityTraits::None) {
146+ return NSAccessibilityMenuButtonRole ;
147+ }
148+ return NSAccessibilityButtonRole ;
149+ }
150+ if ((accessibilityTraits & AccessibilityTraits::Link) != AccessibilityTraits::None) {
151+ return NSAccessibilityLinkRole ;
152+ }
153+ if ((accessibilityTraits & AccessibilityTraits::Image) != AccessibilityTraits::None) {
154+ return NSAccessibilityImageRole ;
155+ }
156+ if ((accessibilityTraits & AccessibilityTraits::KeyboardKey) != AccessibilityTraits::None) {
157+ return NSAccessibilityButtonRole ;
158+ }
159+ if ((accessibilityTraits & AccessibilityTraits::StaticText) != AccessibilityTraits::None) {
160+ return NSAccessibilityStaticTextRole ;
161+ }
162+ if ((accessibilityTraits & AccessibilityTraits::SummaryElement) != AccessibilityTraits::None) {
163+ return NSAccessibilityStaticTextRole ;
164+ }
165+ if ((accessibilityTraits & AccessibilityTraits::UpdatesFrequently) != AccessibilityTraits::None) {
166+ return NSAccessibilityProgressIndicatorRole ;
167+ }
168+ if ((accessibilityTraits & AccessibilityTraits::SearchField) != AccessibilityTraits::None) {
169+ return NSAccessibilityTextFieldRole ;
170+ }
171+ if ((accessibilityTraits & AccessibilityTraits::Adjustable) != AccessibilityTraits::None) {
172+ return NSAccessibilitySliderRole ;
173+ }
174+ if ((accessibilityTraits & AccessibilityTraits::Header) != AccessibilityTraits::None) {
175+ return NSAccessibilityStaticTextRole ;
176+ }
177+ if ((accessibilityTraits & AccessibilityTraits::Switch) != AccessibilityTraits::None) {
178+ return NSAccessibilityCheckBoxRole ;
179+ }
180+ if ((accessibilityTraits & AccessibilityTraits::ComboBox) != AccessibilityTraits::None) {
181+ return NSAccessibilityComboBoxRole ;
182+ }
183+ if ((accessibilityTraits & AccessibilityTraits::Menu) != AccessibilityTraits::None) {
184+ if ((accessibilityTraits & AccessibilityTraits::Bar) != AccessibilityTraits::None) {
185+ return NSAccessibilityMenuBarRole ;
186+ }
187+ if ((accessibilityTraits & AccessibilityTraits::Item) != AccessibilityTraits::None) {
188+ return NSAccessibilityMenuItemRole ;
189+ }
190+ return NSAccessibilityMenuRole ;
191+ }
192+ if ((accessibilityTraits & AccessibilityTraits::Radio) != AccessibilityTraits::None) {
193+ if ((accessibilityTraits & AccessibilityTraits::Group) != AccessibilityTraits::None) {
194+ return NSAccessibilityRadioGroupRole ;
195+ }
196+ return NSAccessibilityRadioButtonRole ;
197+ }
198+ if ((accessibilityTraits & AccessibilityTraits::ScrollBar) != AccessibilityTraits::None) {
199+ return NSAccessibilityScrollBarRole ;
200+ }
201+ if ((accessibilityTraits & AccessibilityTraits::SpinButton) != AccessibilityTraits::None) {
202+ return NSAccessibilityIncrementorRole ;
203+ }
204+ if ((accessibilityTraits & AccessibilityTraits::TabBar) != AccessibilityTraits::None) {
205+ return NSAccessibilityTabGroupRole ;
206+ }
207+ if ((accessibilityTraits & AccessibilityTraits::Tab) != AccessibilityTraits::None) {
208+ if ((accessibilityTraits & AccessibilityTraits::List) != AccessibilityTraits::None) {
209+ return NSAccessibilityTabGroupRole ;
210+ }
211+ return NSAccessibilityRadioButtonRole ;
212+ }
213+ if ((accessibilityTraits & AccessibilityTraits::Disclosure) != AccessibilityTraits::None) {
214+ return NSAccessibilityDisclosureTriangleRole ;
215+ }
216+ if ((accessibilityTraits & AccessibilityTraits::Group) != AccessibilityTraits::None) {
217+ return NSAccessibilityGroupRole ;
218+ }
219+ if ((accessibilityTraits & AccessibilityTraits::List) != AccessibilityTraits::None) {
220+ return NSAccessibilityListRole ;
221+ }
222+ if ((accessibilityTraits & AccessibilityTraits::Table) != AccessibilityTraits::None) {
223+ return NSAccessibilityTableRole ;
224+ }
225+
226+ return NSAccessibilityUnknownRole ;
227+ };
228+ #endif // macOS]
134229
135230inline CATransform3D RCTCATransform3DFromTransformMatrix (const facebook::react::Transform &transformMatrix)
136231{
0 commit comments