Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, 4.2.BETA, 4.2
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 4.1, focusable ACE components.
-
Assignee Priority:P2
Description
As of ICEfaces 4.0, the ACE components have very limited support for the XHTML "accesskey" attribute.
In a web browser, accesskey allows a user to immediately jump (set focus) to a specific element on a web page via a keyboard-shortcut.
As of ICEfaces 4.0, the following ACE components support accesskey:
- autoCompleteEntry
- comboBox
- maskedEntry
- simpleSelectOneMenu
- textEntry
- themeSelect
In ICEfaces 3 ace:checkboxButton, ace:pushButton, ace:radioButton, and ace:linkButton also supported accesskey, however, their support was lost when certain "unsupported" HTML passthrough attributes were removed from their TLDs in 4.0.
This JIRA is to add support for the "accesskey" attribute to the following additional ACE components:
- accordionPane (focus on toggle button)
- audioPlayer (focus on audio element, actual keyboard support varies by browser)
- breadcrumbMenu (focus on menu/first focussable element)
- cellEditor (focus on editor pencil or checkmark button)
- checkboxButton (focus on button)
- columm (focus on filter input if rendered, else asc sort button control if rendered) (ICE-10642)
- dataExporter (focus on button)
- dataTable (focus on dataTable body)
- dataTable Paginator (requires keyboard navigation for Paginator)
- dateTimeEntry (focus on popup entry field only until full keyboard nav support is added to dateTimeEntry)
- dynamicResource (focus on link, image, or button)
- fileEntry (focus on Select Files button when multiple=false, need keyboard support for multiple=true)
- gMap (focus on map viewer)
- gMapAutoComplete (focus on input element)
- linkButton (focus on button)
- menuButton (focus on button)
- menuItem (focus on menuItem, or not feasible action on menuItem)
- pushButton (focus on button)
- radioButton (focus on button)
- richTextEntry (focus on editable region).
- selectMenu (focus on input)
- sliderEntry (focus on slider shuttle)
- tableConfigPanel (focus on button)
- tabPane (focus on tab header, requires keyboard navigation support on tabPane -ICE-10643)
- textAreaEntry (focus on input component)
- tree (focus on tree body)
- videoPlayer (focus on video element actual keyboard support varies by browser)
In a web browser, accesskey allows a user to immediately jump (set focus) to a specific element on a web page via a keyboard-shortcut.
As of ICEfaces 4.0, the following ACE components support accesskey:
- autoCompleteEntry
- comboBox
- maskedEntry
- simpleSelectOneMenu
- textEntry
- themeSelect
In ICEfaces 3 ace:checkboxButton, ace:pushButton, ace:radioButton, and ace:linkButton also supported accesskey, however, their support was lost when certain "unsupported" HTML passthrough attributes were removed from their TLDs in 4.0.
This JIRA is to add support for the "accesskey" attribute to the following additional ACE components:
- accordionPane (focus on toggle button)
- audioPlayer (focus on audio element, actual keyboard support varies by browser)
- breadcrumbMenu (focus on menu/first focussable element)
- cellEditor (focus on editor pencil or checkmark button)
- checkboxButton (focus on button)
- columm (focus on filter input if rendered, else asc sort button control if rendered) (
- dataExporter (focus on button)
- dataTable (focus on dataTable body)
- dataTable Paginator (requires keyboard navigation for Paginator)
- dateTimeEntry (focus on popup entry field only until full keyboard nav support is added to dateTimeEntry)
- dynamicResource (focus on link, image, or button)
- fileEntry (focus on Select Files button when multiple=false, need keyboard support for multiple=true)
- gMap (focus on map viewer)
- gMapAutoComplete (focus on input element)
- linkButton (focus on button)
- menuButton (focus on button)
- menuItem (focus on menuItem, or not feasible action on menuItem)
- pushButton (focus on button)
- radioButton (focus on button)
- richTextEntry (focus on editable region).
- selectMenu (focus on input)
- sliderEntry (focus on slider shuttle)
- tableConfigPanel (focus on button)
- tabPane (focus on tab header, requires keyboard navigation support on tabPane -
- textAreaEntry (focus on input component)
- tree (focus on tree body)
- videoPlayer (focus on video element actual keyboard support varies by browser)
r48509: added 'accesskey' attribute support to 20 ACE components
There are still 7 components left (datatable paginator, column, row editor, breadcrumb menu, fileentry, richtextentry, silderentry, tabpane). For these components, supporting accesskey requires a bit more effort, as in some cases the element in question is rendered dynamically from the javascript or might not be always accessible.
Support for accesskey varies from browser to browser. For example, on Chrome the support is actually very limited. The accesskey attribute is only working for elements that support it in HTML4, even though all elements are supposed to support it in HTML5, and the test page I've been using has the correct HTML5 declaration. I also made sure to make these elements focusable by adding tabindex="0", but this is not working on Chrome. Another issue is that for <a> elements, accesskey not always works. Sometimes it's necessary to first give focus to that <a> element in some other way before being able to use its access key. Sometimes, a different key combination is necessary for these elements (e.g. Alt+Shift+<key> instead of just Alt+<key>). On IE11, for example, everything is working as expected.