Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block Editor: Skip focusTabbable if no active element #21361

Merged
merged 2 commits into from
Apr 2, 2020

Conversation

aduth
Copy link
Member

@aduth aduth commented Apr 2, 2020

Fixes #21276

This pull request seeks to resolve an error which occurs in Internet Explorer when pressing Enter whilst a block is selected in Select interaction mode.

For full debugging details, see comment at #21276 (comment) .

Implementation notes:

The changes as proposed follow the second of the two proposed fixes from #21276 (comment) .

Testing Instructions:

Repeat Steps to Reproduce from #21276, verifying that no crash occurs in Internet Explorer.

@aduth aduth added [Type] Bug An existing feature does not function as intended Browser Issues Issues or PRs that are related to browser specific problems [Package] Block editor /packages/block-editor labels Apr 2, 2020
@aduth aduth requested review from azaozz and tellthemachines April 2, 2020 18:59
@youknowriad
Copy link
Contributor

I also fixed a recent issue on focusTabbable recently. While doing so I was thinking that actually focusTabbable might not be needed anymore (or at least the logic to find the textual elements) as we refactor all textual blocks to use the light block DOM wrapper (it might still be needed for BC)

@github-actions
Copy link

github-actions bot commented Apr 2, 2020

Size Change: +4 B (0%)

Total Size: 884 kB

Filename Size Change
build/block-editor/index.js 102 kB +4 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.45 kB 0 B
build/api-fetch/index.js 3.8 kB 0 B
build/autop/index.js 2.59 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.03 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/style-rtl.css 10.7 kB 0 B
build/block-editor/style.css 10.7 kB 0 B
build/block-library/editor-rtl.css 7.22 kB 0 B
build/block-library/editor.css 7.22 kB 0 B
build/block-library/index.js 110 kB 0 B
build/block-library/style-rtl.css 7.53 kB 0 B
build/block-library/style.css 7.54 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.5 kB 0 B
build/components/index.js 195 kB 0 B
build/components/style-rtl.css 16.6 kB 0 B
build/components/style.css 16.5 kB 0 B
build/compose/index.js 6.21 kB 0 B
build/core-data/index.js 10.7 kB 0 B
build/data-controls/index.js 1.03 kB 0 B
build/data/index.js 8.23 kB 0 B
build/date/index.js 5.37 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.05 kB 0 B
build/edit-navigation/index.js 2.48 kB 0 B
build/edit-navigation/style-rtl.css 239 B 0 B
build/edit-navigation/style.css 241 B 0 B
build/edit-post/index.js 92.3 kB 0 B
build/edit-post/style-rtl.css 12 kB 0 B
build/edit-post/style.css 12 kB 0 B
build/edit-site/index.js 9.12 kB 0 B
build/edit-site/style-rtl.css 4.61 kB 0 B
build/edit-site/style.css 4.61 kB 0 B
build/edit-widgets/index.js 4.43 kB 0 B
build/edit-widgets/style-rtl.css 3.74 kB 0 B
build/edit-widgets/style.css 3.74 kB 0 B
build/editor/editor-styles-rtl.css 423 B 0 B
build/editor/editor-styles.css 426 B 0 B
build/editor/index.js 42.8 kB 0 B
build/editor/style-rtl.css 3.49 kB 0 B
build/editor/style.css 3.49 kB 0 B
build/element/index.js 4.44 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 6.95 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 1.93 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.7 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 4.84 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.01 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 780 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.5 kB 0 B
build/server-side-render/index.js 2.54 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.01 kB 0 B
build/viewport/index.js 1.6 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good. I'm not in capacity to test this in IE11 but I'm confident about the changes.

@aduth
Copy link
Member Author

aduth commented Apr 2, 2020

I also fixed a recent issue on focusTabbable recently. While doing so I was thinking that actually focusTabbable might not be needed anymore (or at least the logic to find the textual elements) as we refactor all textual blocks to use the light block DOM wrapper (it might still be needed for BC)

Would that depend on the block, based on what its root element is? A quote block, for example, would have multiple focusable fields, none of which are the root element (<p> or <cite> within <blockquote>). Won't that still need focusTabbable?

In any case, as you mention, since there always will third-party blocks relying on the current behavior, I think it will need to stick around in one form or another.

@youknowriad
Copy link
Contributor

@aduth Right :) I thought about whether using inner blocks for Quote would fix but it's not even the case, we might even need to surface it as an API (opt-in or opt-out) as I can image that some container blocks would want to focus their first textual inner blocks in some cases.

@aduth aduth merged commit 39c2b85 into master Apr 2, 2020
@aduth aduth deleted the fix/21276-ie11-block-focus-tabbable branch April 2, 2020 21:19
@github-actions github-actions bot added this to the Gutenberg 7.9 milestone Apr 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Browser Issues Issues or PRs that are related to browser specific problems [Package] Block editor /packages/block-editor [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

IE11: browser crashes on pressing Enter to switch to edit mode
2 participants