input-events

edit

WPT coverage of the tests of input-events at the revision 5602b0f210e3. The tests link to their results in the browsers on wpt.fyi. The tentative tests (experimental features) and the reftests are listed separately from the stable tests.

GroupPassingTestsDisabledPass rate
Stable1618089%
Tentative0900%
Reftests000–
All1627059%

Failure reasons

The tests that do not pass (failing or disabled), by kind of reason. A test with several reasons counts once per kind.

  • BUG: 8
  • TEST BUG: 2
  • NOT IMPLEMENTED: 2

Stable tests

TestResultSubtestsKindDescription
contenteditable-insertfrompaste-type-inputevent-data.htmlPass1 / 1
idlharness.window.jsPass13 / 13
input-events-arrow-key-on-number-input-delete-document.htmlPass1 / 1
input-events-arrow-key-on-number-input-prevent-default.htmlPass1 / 1
input-events-arrow-key-on-number-input.htmlPass1 / 1
input-events-cut-paste.htmlPass3 / 3
input-events-delete-selection.htmlPass6 / 6
input-events-exec-command.htmlFail298 / 307BUG, TEST BUG6 of the 9 failing subtests. The value Reset, which is neither a color nor a CSS-wide keyword, is the data of the input event as it was given where the test expects reset (3 subtests). 1 passes in Chrome and Safari: justifyLeft on text that is already aligned to the left creates no div. 2 pass in Chrome only: removeFormat unwraps the div whose style it removes (expected <div style="">abc</div>), and indent then outdent do not restore the same tree.; 3 of the 9 failing subtests: the commands foreColor, backColor and hiliteColor with the value CurrentColor are expected to fire input, but the action of these commands returns false for currentColor as the specification says, and editing/data/forecolor.js (editing/run/forecolor.html) expects forecolor with currentColor to do nothing and return false, which the library passes
input-events-get-target-ranges-shadow-dom.htmlFail0 / 3NOT IMPLEMENTEDthe user edits of an editing host in a shadow tree fire no beforeinput (the selection of the document cannot be in a shadow tree, so there is no active range to edit), and the target ranges of a synthetic InputEvent are not retargeted out of the shadow trees
input-events-get-target-ranges.htmlPass3 / 3
input-events-spin-button-click-on-number-input-delete-document.htmlPass1 / 1
input-events-spin-button-click-on-number-input-prevent-default.htmlPass1 / 1
input-events-spin-button-click-on-number-input.htmlPass1 / 1
input-events-typing.htmlPass13 / 13
select-event-drag-remove.htmlPass1 / 1
textarea-insertfrompaste-type-inputevent-data-withnewline-atend.htmlPass1 / 1
textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.htmlPass1 / 1
textarea-insertfrompaste-type-inputevent-data.htmlPass1 / 1

Tentative tests

TestResultSubtestsKindDescription
input-events-get-target-ranges-backspace.tentative.htmlFail132 / 169BUG37 of 169 subtests (no failing subtest passes in the three browsers): 26 target ranges, most of which only Firefox computes: the range of a deletion that joins two blocks or removes an hr is the caret extended by one character as Selection.modify() does, where the test expects the range of what is removed, with the collapsible white space around it (<p>abc </p><p> [] def</p> expects (#text "abc", 3) - (#text "def", 3)), and the range of the deletion of the only character of an inline element is in its Text node (the test expects the range of the element). 5 results: Backspace at the start of the first item of a list makes it a <div> as the specification says where the test expects its line to be joined to the text before the list, and <br><hr> loses only the <hr>. 6 subtests need a selection with several ranges (the selection of table cells), which only Firefox has.
input-events-get-target-ranges-deleting-in-list-items.tentative.htmlFail1,050 / 1,264BUG214 of 1264 subtests (no failing subtest passes in the three browsers). 102 target ranges, 100 of which fail in every browser: the test expects the range of what the deletion removes when two list items are joined (<li>list-item1</li><li>[]list-item2</li> expects (<li>, 1) - (#text "list-item2", 0); the library returns the caret extended by one character, or the range of the selection). 112 results: a list item with two lines is moved as a whole when it is joined to the previous item, where Chrome and Safari only move its first line and split the item (<li>list-item1list-item2</li><li>second line of list-item2</li>), and a list item whose content is a paragraph is not unwrapped when it is joined (<li>list-item1</li><li><p>[]list-item2</p></li>; 26 subtests that Chrome and Safari pass); the items of two lists are merged in one list when the first item of the second list is joined to the last item of the first one, and the second line of a joined item is not left in the second list (24 subtests, only Safari passes); the selections that contain non-editable list items or an empty nested list do not keep an empty list item, and a selection that ends in a nested list of the next item removes the nested list (46 subtests that every browser fails); Delete in the empty item of a list does not remove the list (14 subtests, only Firefox passes); 2 subtests that only Chrome passes.
input-events-get-target-ranges-deleting-range-across-editing-host-boundaries.tentative.htmlFail3 / 5BUG2 of 5 subtests fail (they also fail in Chrome and Safari): a deletion whose selection crosses non-editable content has one target range (the selection), the test expects one range per editable part
input-events-get-target-ranges-during-and-after-dispatch.tentative.htmlFail2 / 3TEST BUG1 of 3 subtests: the tentative test expects getTargetRanges() to return the same ranges after the dispatch of beforeinput; they are cleared, as input-events-get-target-ranges.html (not tentative) expects and as Chrome does
input-events-get-target-ranges-forwarddelete.tentative.htmlFail138 / 176BUG38 of 176 subtests: 24 target ranges, of which 1 passes in the three browsers (Meta+Delete, the deletion to the end of the line, is not emulated: the range is the one of a character): the range of a deletion that joins two blocks is the caret extended by one character as Selection.modify() does, where the test expects the range of what is removed with the collapsible white space around it (<p>abc []</p><p> def</p> expects (#text "abc", 3) - (#text "def", 3)), the range of the deletion of the only character of an inline element is in its Text node, and the word deleted by Control or Alt+Delete does not include the spaces that follow it. 8 results: the text of a list item that is joined to the text before the list is followed by a <br>, Delete on the empty last line of <p>abc<br>{}<br></p> joins the next paragraph to the first line, an empty <span> is kept when the next paragraph is joined, a non-editable paragraph after an empty one is not deleted, and Shift+Delete and Meta+Delete are not emulated. 6 subtests need a selection with several ranges (table cells), which only Firefox has.
input-events-get-target-ranges-joining-dl-element-and-another-list.tentative.htmlFail260 / 296BUG36 of 296 subtests: 20 results that Chrome and Safari pass (Firefox fails them): Backspace at the start of a dt or dd that follows another list moves it out of its list as a div, as the specification says, instead of joining it to the last item of the list (<ul><li>list-item1</li></ul><div>list-item2</div>, expected <ul><li>list-item1list-item2</li></ul>), and a selection from a dt to the start of an item of another list moves this item into the dl. 8 target ranges that every browser fails, and 8 subtests whose markup is not valid for the helper of the test (<dt}>: Should match number of open/close markers), which fail in every browser.
input-events-get-target-ranges-joining-dl-elements.tentative.htmlFail790 / 880BUG90 of 880 subtests: 66 results that Chrome and Safari pass (Firefox fails them): Backspace at the start of the first dt or dd of a dl that follows another dl moves the item out of its list as a div, as the specification says, instead of joining it to the last item of the previous list (<dl><dt>list-item1</dt></dl><div>list-item2</div>, expected <dl><dt>list-item1list-item2</dt></dl>), and a selection that ends at the start of the first item of the second list merges the lists. 24 target ranges that every browser fails: the range of the selection is returned, where the test expects it to start at the start of the first item or to end before the item.
input-events-get-target-ranges-non-collapsed-selection.tentative.htmlFail165 / 210BUG45 of 210 subtests (39 pass only in Firefox, 5 in no browser, 1 in the three browsers): 35 target ranges, 33 of which only Firefox computes: the range is the range of the selection (a boundary point next to a Text node is moved into it), where the test expects it extended over the collapsible white space that is deleted with the selection (<p>abc [</p><p>] def</p> expects (#text "abc", 3) - (#text "def", 3)) or ending after the <br> of an empty block. 9 results that only Firefox passes or that every browser fails: the text of a list item joined to the text before the list is followed by a <br> (<div>abc[<ul><li>]def</li></ul>ghi</div> gives <div>abcdef<br>ghi</div>, expected <div>abcdefghi</div>). 1 subtest passes in the three browsers: typing over a selected <hr> between two spaces (<div>abc {<hr>} def</div>) keeps the space that follows (abca def, expected abcadef; the deletion with Backspace or Delete passes), because the insertion commands still canonicalize the white space as the specification says.
input-events-range-exceptions.tentative.htmlFail0 / 4NOT IMPLEMENTEDthe tentative validation of targetRanges by the InputEvent constructor (an IndexSizeError for a StaticRange whose offsets are greater than the length of its nodes), and the tentative clamping of the ranges when the event is dispatched