w3c / w3c/webdriver

Normalisation of Control/Meta key across different OSs

Open
#1,464 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Element Send Keys Perform Actions
Dominant language
HTML
Stars
718
Forks
228
PR merge metrics
No merged PRs in 30d

Description

In chapter E. Index:

The following attributes are defined in the UI Events Code specification: [UIEVENTS-KEY]

Keyboard modifier keys

This is not explicitly mentioned, except to link to the UIEVENTS-KEY spec, which then defines:

"Control": The Control or Ctrl key, to enable control modifier function for interpreting concurrent or subsequent keyboard input.
"Meta": The Meta key, to enable meta modifier function for interpreting concurrent or subsequent keyboard input. This key value is used for the Windows Logo key and the Apple Command or ⌘ key.

This means that use of the Control key to perform certain actions, for example Control + A, will be operating-system specific. On Windows, Linux, and most other hosts Control + A will select all. On a Mac the Control + Meta keys are swapped around and Control + A will go to the start of the line in an input and have no effect outside of a field.

Technically the specification is doing the right thing. It is sending exactly the key requested, but it may be worth clarifying at some point in the specification which Node should be responsible for normalisation of these keys, if any. At the very least it may be worth pointing it out as I suspect most people will not know about it until they've spent significant time debugging why their key combinations do not work.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with chapter E. Index of the WebDriver specification and compare its Control and Meta key definitions with the linked UI Events Code specification. Determine whether the specification should clarify node-side normalization across operating systems, and consider the issue complete when that responsibility and expected cross-platform behavior are explicitly documented.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, operating-systems
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.