(&self)
| 115 | } |
| 116 | |
| 117 | fn traits(&self) -> UIAccessibilityTraits { |
| 118 | let mut traits = match self.0.role() { |
| 119 | Role::Button |
| 120 | | Role::DefaultButton |
| 121 | | Role::DisclosureTriangle |
| 122 | | Role::CheckBox |
| 123 | | Role::RadioButton |
| 124 | | Role::Switch |
| 125 | | Role::MenuItemCheckBox |
| 126 | | Role::MenuItemRadio |
| 127 | | Role::Tab => unsafe { UIAccessibilityTraitButton }, |
| 128 | Role::Link => unsafe { UIAccessibilityTraitLink }, |
| 129 | Role::Image => unsafe { UIAccessibilityTraitImage }, |
| 130 | Role::Label => unsafe { UIAccessibilityTraitStaticText }, |
| 131 | Role::Heading => unsafe { UIAccessibilityTraitHeader }, |
| 132 | Role::Slider | Role::SpinButton => unsafe { UIAccessibilityTraitAdjustable }, |
| 133 | Role::SearchInput => unsafe { UIAccessibilityTraitSearchField }, |
| 134 | _ => unsafe { UIAccessibilityTraitNone }, |
| 135 | }; |
| 136 | |
| 137 | if self.0.is_disabled() { |
| 138 | traits |= unsafe { UIAccessibilityTraitNotEnabled }; |
| 139 | } |
| 140 | |
| 141 | if self.0.toggled().is_some() { |
| 142 | traits |= unsafe { UIAccessibilityTraitToggleButton }; |
| 143 | } |
| 144 | |
| 145 | if self.0.is_selected() == Some(true) { |
| 146 | traits |= unsafe { UIAccessibilityTraitSelected }; |
| 147 | } |
| 148 | |
| 149 | if self.0.role() == Role::ProgressIndicator || self.0.live() != Live::Off { |
| 150 | traits |= unsafe { UIAccessibilityTraitUpdatesFrequently }; |
| 151 | } |
| 152 | |
| 153 | if self.0.is_touch_transparent() { |
| 154 | traits |= unsafe { UIAccessibilityTraitAllowsDirectInteraction }; |
| 155 | } |
| 156 | |
| 157 | traits |
| 158 | } |
| 159 | |
| 160 | fn container_type(&self) -> UIAccessibilityContainerType { |
| 161 | match self.0.role() { |
no test coverage detected