Accessibility/EditorBehaviourOnUserInput
Summary
The article is aimed to propose editor behaviour on user input when control elements are contained in editable area. The start point of this proposal is control elements inside of editable area should have normal behaviour as they wouldn't be inside of editable area. So that they should be operable with mouse and keyboard as usually. The point doesn't contradict with HTML 5 specification. However the specification doesn't address editable area behaviour in question. That was a reason to start this proposal.
The start point can be found not suitable for certain amount of web applications and they might want to change it somehow to meet their specific needs, for example, if web application wants to provide an ability to edit the button's label. This proposal is indented to provide sort of default behaviour and don't pretend to define unique one for all possible cases.
The main goal of this proposal is ensure control elements inside of editable area are accessible both for any user. Therefore it's necessary ensure control elements are accessible and operable by keyboard.
In this proposal under control elements are considered either HTML controls or ARIA controls. However the proposal is not restricted by HTML only, proposed ideas should work for other markup languages.
Suggestion
The main point is control element inside of editable area should behave as "normal" control, i.e. when it is not placed inside of editable are.
- mouse interaction
Control behaviour is the same on mouse input. For example, if user clicks on combobox (HTML:select) then drop down list is appeared.
- keyboard interaction
Control behaviour is the same on keyboard input when control is focused until action on key press can be performed. For example, if textbox (HTML:input) is focused then arrow keys moves through its text. If listbox (HTML:select) is focused then up/down arrow keys change selected item.
- tab navigation
If control is focused then tab press should navigate to the next control within editable are or outside of editable area if there is no control inside of editable are