[
    {
        "h2": "Accessibility Support"
    },
    {
        "p": "Out of the box, the Telerik and Kendo UI FlatColorPicker provides extensive accessibility support and enables users with disabilities to acquire complete control over its features."
    },
    {
        "p": "The FlatColorPicker is compliant with the [Web Content Accessibility Guidelines (WCAG) 2.2 standards](https://www.w3.org/TR/WCAG22/) and [Section 508](http://www.section508.gov/) requirements, follows the [Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA)](https://www.w3.org/WAI/ARIA/apg/) best practices for implementing the [keyboard navigation](#keyboard-navigation) for its `component` role, provides options for [managing its focus](#managing-the-focus) and is tested against the most popular [screen readers](#screen-readers)."
    },
    {
        "h3": "WAI-ARIA"
    },
    {
        "p": "This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any."
    },
    {
        "p": "The FlatColorPicker contains in itself ColorGradient, ColorPalette, a UI to switch between them, Cancel, Apply, and a button to reset its value. All the containing elements must implement their own specification apart from the ColorGradient element where some changes are required."
    },
    {
        "h4": "FlatColorPicker Wrapping Element"
    },
    {
        "table": {
            "headers": [
                "Selector",
                "Attribute",
                "Usage"
            ],
            "rows": [
                {
                    "Selector": "`.k-flatcolorpicker`",
                    "Attribute": "`role=textbox`",
                    "Usage": "The focusable wrapper of the component should be considered a `textbox`. That signifies it has a value that could be submitted."
                },
                {
                    "Selector": "",
                    "Attribute": "`aria-label` or `aria-labelledby`",
                    "Usage": "The component needs an accessible name to be assigned to it. Must also include the currently selected value in the component."
                },
                {
                    "Selector": "",
                    "Attribute": "`aria-invalid=true`",
                    "Usage": "Attribute is rendered only when the selected value in the component is not valid against the current validation rules."
                },
                {
                    "Selector": "",
                    "Attribute": "`tabindex=0`",
                    "Usage": "The element must be focusable."
                },
                {
                    "Selector": "`.k-flatcolorpicker.k-disabled`",
                    "Attribute": "`aria-disabled=true`",
                    "Usage": "Attribute is rendered only when the ColorPalette is disabled."
                }
            ]
        }
    },
    {
        "h4": "ColorGradient"
    },
    {
        "table": {
            "headers": [
                "Selector",
                "Attribute",
                "Usage"
            ],
            "rows": [
                {
                    "Selector": "`.k-colorgradient`",
                    "Attribute": "`role=none/`",
                    "Usage": "The ColorGradient element must have its role removed."
                },
                {
                    "Selector": "",
                    "Attribute": "`aria-label`",
                    "Usage": "The ColorGradient element must have its \"aria-label\" attribute removed."
                },
                {
                    "Selector": "",
                    "Attribute": "`tabindex=-1/`",
                    "Usage": "The ColorGradient must be removed from the page tab sequence."
                }
            ]
        }
    },
    {
        "h3": "Managing the Focus"
    },
    {
        "p": "The FlatColorPicker is a single-tab-stop component. Its inner navigation is activated by pressing the `Enter` key. In that case the focus remains trapped within the component elements. The user returns to page navigation by pressing `Esc`."
    },
    {
        "h3": "Keyboard Shortcuts"
    },
    {
        "h4": "When wrapper is focused"
    },
    {
        "table": {
            "headers": [
                "Shortcut",
                "Behavior"
            ],
            "rows": [
                {
                    "Shortcut": "`Enter`",
                    "Behavior": "Activates inner FlatColorPicker navigation."
                },
                {
                    "Shortcut": "`Tab`",
                    "Behavior": "Navigates to the next focusable element on the page."
                },
                {
                    "Shortcut": "`Shift` + `Tab`",
                    "Behavior": "Navigates to the previous focusable element on the page."
                }
            ]
        }
    },
    {
        "h4": "When inner navigation is activated"
    },
    {
        "table": {
            "headers": [
                "Shortcut",
                "Behavior"
            ],
            "rows": [
                {
                    "Shortcut": "`Esc`",
                    "Behavior": "Moves focus back to wrapper element. Deactivates inner FlatColorPicker navigation."
                },
                {
                    "Shortcut": "`Tab`",
                    "Behavior": "Navigates to the next focusable element in the FlatColorPicker. If current focus is on the last element, moves focus to the first focusable item in the component."
                },
                {
                    "Shortcut": "`Shift` + `Tab`",
                    "Behavior": "Navigates to the previous focusable element in the FlatColorPicker. If current focus is on the first element, moves focus to the last focusable item in the component."
                },
                {
                    "Shortcut": "`Enter`",
                    "Behavior": "For button items, FlatColorPicker executes the currently focused button action."
                }
            ]
        }
    },
    {
        "h4": "Inner elements shortcuts"
    },
    {
        "p": "The inner elements implement the shortcuts for their component type. There are **ColorGradient**, **ColorPalette**, and **Button** elements. Note that the ColorGradient must expose directly its inner navigation when used in a FlatColorPicker (the wrapper must not be focusable itself)."
    },
    {
        "h3": "Testing"
    },
    {
        "p": "The FlatColorPicker has been extensively tested automatically with [axe-core](https://github.com/dequelabs/axe-core) and manually with the most popular screen readers."
    },
    {
        "h3": "Screen Readers"
    },
    {
        "p": "The FlatColorPicker has been tested with the following screen readers and browsers combinations:"
    },
    {
        "table": {
            "headers": [
                "Environment",
                "Tool"
            ],
            "rows": [
                [
                    "Firefox",
                    "NVDA"
                ],
                [
                    "Chrome",
                    "JAWS"
                ],
                [
                    "Microsoft Edge",
                    "JAWS"
                ]
            ]
        }
    }
]