Having separate tab stops for every toolbar control results in an unmanageable number of tab stops.
Therefore, we group several buttons under a single tab stop and allow movement between them using left/right arrows.
However, text inputs use the arrow keys for their own purposes, so they need their own tab stop.
There are also groups of buttons before and after the URL bar input which should get their own tab stop.
The subsequent buttons on the toolbar are then another tab stop after that.
Tab stops for groups of buttons are set using the <toolbartabstop/> element.
This element is invisible, but gets included in the tab order.
When one of these gets focus, it redirects focus to the appropriate button.
This avoids the need to continually manage the tabindex of toolbar buttons in response to toolbarchanges.
Navigation to for the View site information button and notification anchors is now managed by this new framework.
As such, they no longer need their own position in the tab order and the CSS has been tweaked accordingly.
For now, this new functionality is behind a pref (browser.toolbars.keyboard_navigation) which is currently disabled by default.
Differential Revision: https://phabricator.services.mozilla.com/D15060
--HG--
extra : moz-landing-system : lando
Having separate tab stops for every toolbar control results in an unmanageable number of tab stops.
Therefore, we group several buttons under a single tab stop and allow movement between them using left/right arrows.
However, text inputs use the arrow keys for their own purposes, so they need their own tab stop.
There are also groups of buttons before and after the URL bar input which should get their own tab stop.
The subsequent buttons on the toolbar are then another tab stop after that.
Tab stops for groups of buttons are set using the <toolbartabstop/> element.
This element is invisible, but gets included in the tab order.
When one of these gets focus, it redirects focus to the appropriate button.
This avoids the need to continually manage the tabindex of toolbar buttons in response to toolbarchanges.
Navigation to for the View site information button and notification anchors is now managed by this new framework.
As such, they no longer need their own position in the tab order and the CSS has been tweaked accordingly.
For now, this new functionality is behind a pref (browser.toolbars.keyboard_navigation) which is currently disabled by default.
Differential Revision: https://phabricator.services.mozilla.com/D15060
--HG--
extra : moz-landing-system : lando
1. Fix the Firefox menu button so that it only handles space and enter, rather than incorrectly activating for *all* key presses.
2. Add keyboard support (space and enter) for the Library and page Actions buttons.
3. Add keyboard support (space and enter) for customizable widgets of type "view"; e.g. the Developer button.
4. Add keyboard support (space and enter) for page action buttons pinned to the URL bar; e.g. the Send Tab to Device button.
Differential Revision: https://phabricator.services.mozilla.com/D11608
--HG--
extra : moz-landing-system : lando
This adds a skipintoolbarset to the toolbar-menubar spacer and the titlebar-buttonbox-container
hbox to avoid a case where an exception can be thrown from CustomizableUI.isWidgetRemovable,
which expects all direct descendants of toolbars to either have an ID, be one of a special
set of node types, or have skipintoolbarset="true" set on it.
Differential Revision: https://phabricator.services.mozilla.com/D13147
--HG--
extra : moz-landing-system : lando
This also adds a skipintoolbarset to the titlebar-buttonbox-container hbox to avoid a case
where an exception can be thrown from CustomizableUI.isWidgetRemovable, which expects all
direct descendants of toolbars to either have an ID, be one of a special set of node types,
or have skipintoolbarset="true" set on it.
Differential Revision: https://phabricator.services.mozilla.com/D12592
--HG--
extra : moz-landing-system : lando
Move XUL persistence handling into it's own class and make it a separate
nsIDocumentObserver so it can also be used in non-XUL documents.
To avoid adding persistence to all non-XUL documents, a document must add
the "mozpersist" attribute to the root element if it wants enable the
feature.
Differential Revision: https://phabricator.services.mozilla.com/D6802
--HG--
extra : moz-landing-system : lando
We'd like to be able to implement label features with a Custom Element, and we
don't want to run CE reactions inside of NAC.
Differential Revision: https://phabricator.services.mozilla.com/D8241
--HG--
extra : moz-landing-system : lando
I left off the part about adding Reload Tabs to the All Tabs menu since the specs don't mention how this would appear with the New Container Tab menuitem and the Tab Manager project has been split off from the multiselect tabs project.
Differential Revision: https://phabricator.services.mozilla.com/D8274
--HG--
extra : moz-landing-system : lando
By hiding the documentElement with display:none and then waiting to
show it until readystatechange, we can avoid inadvertently constructing
XBL bindings as a result scripts running during parse like connectedCallback.
This more closely matches XUL document behavior, where the initial
layout doesn't happen until everything is parsed and loaded. It also
lets us call gBrowserInit.onBeforeInitialXULLayout actually before
layout happens.
Differential Revision: https://phabricator.services.mozilla.com/D8297
--HG--
extra : moz-landing-system : lando
This patch also removes the menuseparator before the Send Tabs to Device menuitem since there shouldn't be a logical separation between that menuitem and the others.
Differential Revision: https://phabricator.services.mozilla.com/D7569
--HG--
extra : moz-landing-system : lando
Bug 1470555 moved the title from a dtd to a properties file, so we can and should now set the action's title directly when the action is created in PageActions.jsm. But it's a PluralForm string, so we need to jump through that hoop.
Differential Revision: https://phabricator.services.mozilla.com/D5721
--HG--
extra : moz-landing-system : lando