# has-valid-accessibility-role *Note*: `accessibilityRole` and `accessibilityStates` are meant to be a cross-platform solution to replace `accessibilityTraits` and `accessibilityComponentType`, which will soon be deprecated. When possible, use `accessibilityRole` and `accessibilityStates` instead of `accessibilityTraits` and `accessibilityComponentType`. The accessibilityRole property is used to tell Talkback or Voiceover the role of a UI Element. ## Values may be one of the following - `"adjustable"`: Used when an element can be "adjusted" (e.g. a slider). - `"alert"`: Used when an element contains important text to be presented to the user. - `"button"`: Used when the element should be treated as a button. - `"checkbox"`: Used when an element represents a checkbox which can be checked, unchecked, or have mixed checked state. - `"combobox"`: Used when an element represents a combo box, which allows the user to select among several choices. - `"header"`: Used when an element acts as a header for a content section (e.g. the title of a navigation bar). - `"image"`: Used when the element should be treated as an image. Can be combined with button or link, for example. - `"imagebutton"`: Used when the element should be treated as a button and is also an image. - `"keyboardkey"`: Used when the element acts as a keyboard key. - `"link"`: Used when the element should be treated as a link. - `"menu"`: Used when the component is a menu of choices. - `"menubar"`: Used when a component is a container of multiple menus. - `"menuitem"`: Used to represent an item within a menu. - `"none"`: Used when the element has no role. - `"progressbar"`: Used to represent a component which indicates progress of a task. - `"radio"`: Used to represent a radio button. - `"radiogroup"`: Used to represent a group of radio buttons. - `"scrollbar"`: Used to represent a scroll bar. - `"search"`: Used when the text field element should also be treated as a search field. - `"spinbutton"`: Used to represent a button which opens a list of choices. - `"summary"`: Used when an element can be used to provide a quick summary of current conditions in the app when the app first launches. - `"switch"`: Used to represent a switch which can be turned on and off. - `"tab"`: Used to represent a tab. - `"tablist"`: Used to represent a list of tabs. - `"text"`: Used when the element should be treated as static text that cannot change. - `"timer"`: Used to represent a timer. - `"toolbar"`: Used to represent a tool bar (a container of action buttons or components). ### References 1. [React Native Docs - accessibilityRole](https://facebook.github.io/react-native/docs/accessibility.html#accessibilityrole-ios-android) ## Rule details This rule takes no arguments. ### Succeed ```jsx ``` ### Fail ```jsx ```