Remove the tabIndex property from the blocks public API
In general, all focusable components should receive focus sequentially in the order they appear on a page. Authors should not use a positive values of the tabindex attribute without an absolute necessity.
Look the links below for more detailed explanation:
http://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-focus-order.html http://www.w3.org/TR/2015/NOTE-WCAG20-TECHS-20150226/F44
We should remove the tabIndex property from the blocks public API.
The existing focusable components have _disabled modifier, that excludes them from the focus navigation.
Any new focusable component, which implementation is not based on the native HTML focusable controls (such as <input>, <button> etc.), should add tabindex=0 implicitly by themselves.
They may implement the _disabled modifier, that sets tabindex=-1 if needed.
In an exceptional cases authors may implement a composite widget with some focusable controls inside with non sequential focus order. This logic should be implemented and incapsulated by this widget. As the current library implementation does not contain such widgets, so the solution should be implemented on the project side by redefining library components if needed.
This change breaks backwards compatibility and should be done in v3.