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

Keycodes: Test modifiers for keyboard event as exclusive set #20733

Merged
merged 2 commits into from
Apr 17, 2020

Conversation

aduth
Copy link
Member

@aduth aduth commented Mar 9, 2020

Fixes #17870

This pull request seeks to improve the logic for @wordpress/keycodes isKeyboardEvent to test expected modifiers as exclusively the same as those reported by the given event. See the test case added in 3f88808 as an example of a result which would previously have returned true for isKeyboardEvent.primary with a key event for CtrlShiftm.

Also included are updates to test cases of non-primary modifiers, where previously the tests were always asserting against the result of isKeyboardEvent.primary. See 05bd721 for specific changes. Notably, the tests for access expected modifiers were inconsistent with the actual implementation and needed to be updated. I deferred to the current implementation as the "expected" result, though I am not entirely clear what an "access" modifier is, so I'd appreciate a second set of eyes.

Testing Instructions:

Ensure unit tests pass:

npm run test-unit packages/keycodes/src/test/index.js

Repeat Steps to Reproduce from #17870, ensuring that the Ctrl+A "Select All" behavior is not triggered in response to a AltGrA key combination.

@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] Keycodes /packages/keycodes labels Mar 9, 2020
@aduth aduth requested a review from ellatrix March 9, 2020 16:07
@aduth aduth requested a review from talldan as a code owner March 9, 2020 16:07
@github-actions
Copy link

github-actions bot commented Mar 9, 2020

Size Change: +32 B (0%)

Total Size: 842 kB

Filename Size Change
build/keycodes/index.js 1.94 kB +32 B (1%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 4.01 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.24 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 761 B 0 B
build/block-editor/index.js 105 kB 0 B
build/block-editor/style-rtl.css 10.2 kB 0 B
build/block-editor/style.css 10.2 kB 0 B
build/block-library/editor-rtl.css 7.08 kB 0 B
build/block-library/editor.css 7.09 kB 0 B
build/block-library/index.js 112 kB 0 B
build/block-library/style-rtl.css 7.17 kB 0 B
build/block-library/style.css 7.17 kB 0 B
build/block-library/theme-rtl.css 683 B 0 B
build/block-library/theme.css 685 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.7 kB 0 B
build/components/index.js 198 kB 0 B
build/components/style-rtl.css 16.9 kB 0 B
build/components/style.css 16.9 kB 0 B
build/compose/index.js 6.66 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.25 kB 0 B
build/data/index.js 8.43 kB 0 B
build/date/index.js 5.47 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.1 kB 0 B
build/edit-navigation/index.js 3.54 kB 0 B
build/edit-navigation/style-rtl.css 485 B 0 B
build/edit-navigation/style.css 485 B 0 B
build/edit-post/index.js 27.9 kB 0 B
build/edit-post/style-rtl.css 12.3 kB 0 B
build/edit-post/style.css 12.3 kB 0 B
build/edit-site/index.js 10.5 kB 0 B
build/edit-site/style-rtl.css 5.05 kB 0 B
build/edit-site/style.css 5.05 kB 0 B
build/edit-widgets/index.js 7.49 kB 0 B
build/edit-widgets/style-rtl.css 4.67 kB 0 B
build/edit-widgets/style.css 4.67 kB 0 B
build/editor/editor-styles-rtl.css 428 B 0 B
build/editor/editor-styles.css 431 B 0 B
build/editor/index.js 43.3 kB 0 B
build/editor/style-rtl.css 3.48 kB 0 B
build/editor/style.css 3.47 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.32 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 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.51 kB 0 B
build/list-reusable-blocks/index.js 3.12 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 5.28 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 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.67 kB 0 B
build/primitives/index.js 1.49 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.8 kB 0 B
build/server-side-render/index.js 2.67 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.02 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@aduth
Copy link
Member Author

aduth commented Mar 10, 2020

@rgembalik If you're willing, could you test to see if this fixes the issue you described in #17870?

You can test it at: http://gutenberg.run/20733

@rgembalik
Copy link

@aduth Thanks for letting me know. I haven't tested the issue on exactly the same environment before (Gutenberg.run), but I can confirm, that under the environment you sent me it all works as expected for Chrome, Edge and IE11.
The issue with Alt Gr + A selecting text instead of typing ą seem to be fixed on that environment.

@aduth aduth force-pushed the fix/17870-keycodes-modifiers-exclusive branch from 3f88808 to 76f140f Compare April 17, 2020 20:09
@aduth aduth merged commit 6fb02ca into master Apr 17, 2020
@aduth aduth deleted the fix/17870-keycodes-modifiers-exclusive branch April 17, 2020 20:50
@github-actions github-actions bot added this to the Gutenberg 8.0 milestone Apr 17, 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] Keycodes /packages/keycodes [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Alt shortcuts broken for Internet Explorer 11 and Edge
3 participants