Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upInvestigate WPT test failures #24828
Comments
|
Some of the entries that look high value to me:
|
|
I looked at those 9 "html/semantics/scripting-1/the-script-element" failures. Six of them are named nomodule-* and fail because nomodule doesn't exist. I see that there's active progress on #23370 and nomodule would presumably fall under there. Two of them, muted-errors.sub.html and data-url.html are cross-origin Javacript error propagation issues. muted-errors has cross-origin errors that should be muted but aren't, and data-url has technically-cross-origin errors that should be exempt from muting but are muted. These probably share a common cause with other CORS problems. script-charset-02 looks like |
|
html/semantics/scripting-1/the-script-element/execution-timing gets subtle, but one common type of failure is exemplified test 147.html. The decision point for executing scripts with a given timing is being locked in too early. |
|
The execution timing failures are more diverse than I expected. Some are about unimplemented features, some are fine points where other browsers are failing too, and only a few seem to be unambiguously Servo bugs. Long list that I subsequently added as separate issuesUNIMPLEMENTED FEATURES: 042, 043, 044, 054, 055: These tests are using a deprecated not-in-servo API to find out when DOM node insertion events fire (see https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events ) 123, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146: These are testing the SVG script tag rather than the HTML one, so Servo doesn't even really reach the code in question.NON-TIMING SERVO BUG: ACTUAL PROBLEMS WITH SERVO'S TIMING: FINE POINTS WITH BROWSER DISAGREEMENT: BROKEN TEST: |
|
Many of the fetch/api/basic errors fall into unimplemented features and incorrect handling of request headers. There are 7 other failures outside those two categories. My manual count isn't matching your script count on these, so I might have missed a couple. I've made separate issues for these now, so we don't really need to see the giant list hereEXPLICITLY UNIMPLEMENTED FEATURES: mediasource.window.html: MediaSource is not defined error-after-response.html, stream-response.any[.worker].html: response.body is unimplemented request-upload.any[.worker].html: ReadableStream is not defined *.any.sharedworker.html: SharedWorker is not defined *.any.serviceworker.html: navigator.serviceWorker is undefinedPROBLEMS WITH REQUEST HEADERS: AND THE REST: |
|
Here's the next batch that look like the highest value:
|
|
I've gone through the list and broken down individual issues. fetch/api/cors is a bit of a pile in #24908 but I suspect there are are only a few real root causes among all those preflight failures. I have an idea of how various parts of Servo interconnect and which issues are likely to be bigger than others, and next week I'll start trying to resolve some issues. |
|
Do we have any ways of automatically or semi-automatically cleaning out old metadata from tests that no longer exist? An example: https://github.com/servo/servo/blob/66aebfdbee6ae10fe7ea65224bf202f53b2efceb/tests/wpt/metadata/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html.ini has a leftover failure from a test that expects calling an HTMLFormControlsCollection like a function to work. This was removed, superceded by the first test of https://github.com/servo/servo/blob/66aebfdbee6ae10fe7ea65224bf202f53b2efceb/tests/wpt/web-platform-tests/html/infrastructure/common-dom-interfaces/collections/historical.html explicitly testing that that behavior no longer exists (and Servo passes the latter). |
|
The only way to do that is to remove all of the ini files, run the tests on CI, then download the resulting log files and run |
|
Is that ever done? |
|
It's only been done for individual directories, not the full testsuite. |
|
I've taken some time going over the https://github.com/servo/servo/projects/20 todos to get a sense of what we have. Most of the categories represent a single root concept to be worked on, but "Other features Servo is overtly missing" and "Issues not falling into more specific groups" are more heterogenous. Test problems Issues in which the spec seems unclear, the WPT test itself has a problem, or other browsers are also failing:
Test performance problems that could be mitigated by breaking tests into more files of fewer cases, but which probably also reflect things we can do faster:Absent features Feature policies:Shadow DOM:The iframe sandbox parameter:
Nested browsing contexts other than iframes:
Other features Servo is overtly missing:
Iframes These seem be problems with our iframe navigation implementation:
These problems are likely to involve mishandling of iframe origins/bases, which overlaps iframe navigation:
These involve referrers of blank iframes:Other unexpected iframe behaviors:
Parsing and charsets Incomplete handling of explicit character-set settings:Failures that seem likely to require fixes in html5ever/xml5ever:
XHR/Fetch Handling of Basic auth credentials:XHR sends events to upload listeners that it shouldn't send events to:XMLHttpRequest.abort:
Problems that seem likely to come from Hyper crates not matching WHATWG specs:
Other issues involving XHR and fetch:
Forms Form data serialization:Custom form elements:Other issues involving forms:Other specific areas Cookies:
Document named getter:Issues that seem to involve using "settings objects" to keep track of the realms involved in cross-global calls:Issues involving event listeners:
Timing/event-ordering issues involving stylesheet loading:
Document.open:
Problems with the mostly codegen-created prototype objects of interfaces:These seem to be HTMLConstructor problems:
Legacy "Refresh" handling:Compiled inline event handlers:
Issues not falling into more specific groups Miscellaneous script/dom phenomena that seem to be solvable just inside script/dom without involving layout, parsing or network:
Other
|
Based on a python script that counts the tests present in https://github.com/servo/servo/tree/master/tests/wpt/web-platform-tests/ and the corresponding ini files present in https://github.com/servo/servo/tree/master/tests/wpt/metadata, here's a sorted list of test directories, the percentage of tests in the directory that are failures, and the absolute numbers of tests and failures in that directory.
Test counts
offscreen-canvas/fill-and-stroke-styles: 79.52% (420 / 334)
offscreen-canvas/path-objects: 85.71% (266 / 228)
service-workers/service-worker: 88.89% (198 / 176)
html/semantics/embedded-content/media-elements/track/track-element: 86.73% (98 / 85)
offscreen-canvas/compositing: 43.01% (186 / 80)
xhr: 25.76% (295 / 76)
offscreen-canvas/shadows: 66.07% (112 / 74)
webxr: 81.01% (79 / 64)
resource-timing: 79.41% (68 / 54)
dom/nodes: 29.17% (168 / 49)
offscreen-canvas/text: 42.86% (112 / 48)
offscreen-canvas/the-offscreen-canvas: 47.47% (99 / 47)
offscreen-canvas/transformations: 100.00% (45 / 45)
html/semantics/embedded-content/media-elements/track/track-element/cors: 100.00% (44 / 44)
offscreen-canvas/drawing-rectangles-to-the-canvas: 68.75% (64 / 44)
offscreen-canvas/pixel-manipulation: 41.18% (102 / 42)
custom-elements/reactions: 73.08% (52 / 38)
html/semantics/forms/the-input-element: 53.52% (71 / 38)
html/dom/elements/global-attributes: 25.18% (139 / 35)
workers: 34.69% (98 / 34)
html/rendering/non-replaced-elements/the-fieldset-and-legend-elements: 50.00% (66 / 33)
bluetooth/server/getPrimaryServices: 100.00% (32 / 32)
navigation-timing: 68.09% (47 / 32)
html/semantics/scripting-1/the-script-element/execution-timing: 20.81% (149 / 31)
html/semantics/embedded-content/the-iframe-element: 32.26% (93 / 30)
html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters: 100.00% (27 / 27)
2dcontext/drawing-text-to-the-canvas: 84.38% (32 / 27)
fetch/metadata/sec-fetch-dest: 80.65% (31 / 25)
fetch/metadata: 82.76% (29 / 24)
2dcontext/text-styles: 82.14% (28 / 23)
html/rendering/non-replaced-elements/the-page: 65.62% (32 / 21)
WebCryptoAPI/generateKey: 100.00% (20 / 20)
webaudio/the-audio-api/the-audioparam-interface: 64.52% (31 / 20)
html/webappapis/dynamic-markup-insertion/opening-the-input-stream: 35.71% (56 / 20)
bluetooth/requestDevice/canonicalizeFilter: 100.00% (19 / 19)
html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name: 73.08% (26 / 19)
fetch/api/basic: 70.37% (27 / 19)
webaudio/the-audio-api/the-audioworklet-interface: 100.00% (18 / 18)
bluetooth/server/getPrimaryService: 100.00% (18 / 18)
fetch/api/cors: 94.74% (19 / 18)
fetch/api/response: 85.71% (21 / 18)
html/semantics/scripting-1/the-script-element/module/dynamic-import: 85.71% (21 / 18)
custom-elements: 81.82% (22 / 18)
html/semantics/selectors/pseudo-classes: 78.26% (23 / 18)
cors: 72.00% (25 / 18)
html/browsers/history/the-location-interface: 30.51% (59 / 18)
offscreen-canvas/line-styles: 29.03% (62 / 18)
dom/events: 28.33% (60 / 17)
html/infrastructure/safe-passing-of-structured-data/shared-array-buffers: 88.89% (18 / 16)
html/semantics/forms/constraints: 53.33% (30 / 16)
html/semantics/text-level-semantics/the-bdi-element: 50.00% (32 / 16)
bluetooth/service/getCharacteristics: 100.00% (15 / 15)
bluetooth/requestDevice: 100.00% (14 / 14)
html/dom: 87.50% (16 / 14)
html/semantics/interactive-elements/the-dialog-element: 82.35% (17 / 14)
html/browsers/the-window-object: 66.67% (21 / 14)
performance-timeline: 63.64% (22 / 14)
encoding: 37.84% (37 / 14)
html/rendering/non-replaced-elements/tables: 35.90% (39 / 14)
html/semantics/embedded-content/media-elements/loading-the-media-resource: 31.82% (44 / 14)
2dcontext/wide-gamut-canvas: 92.86% (14 / 13)
html/webappapis/scripting/processing-model-2: 38.24% (34 / 13)
2dcontext/drawing-images-to-the-canvas: 30.23% (43 / 13)
2dcontext/fill-and-stroke-styles: 5.65% (230 / 13)
webaudio/the-audio-api/the-convolvernode-interface: 100.00% (12 / 12)
service-workers/cache-storage/serviceworker: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unset/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unset/xhr: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
encoding/streams: 100.00% (12 / 12)
wasm/serialization/module: 85.71% (14 / 12)
html/interaction/focus/the-autofocus-attribute: 63.16% (19 / 12)
html/webappapis/scripting/events: 52.17% (23 / 12)
domparsing: 52.17% (23 / 12)
fetch/api/request: 50.00% (24 / 12)
service-workers/cache-storage/window: 100.00% (11 / 11)
WebIDL/ecmascript-binding: 91.67% (12 / 11)
wasm/webapi: 91.67% (12 / 11)
fetch/api/policies: 78.57% (14 / 11)
webaudio/the-audio-api/the-pannernode-interface: 73.33% (15 / 11)
dom/ranges: 32.35% (34 / 11)
service-workers/cache-storage/worker: 100.00% (10 / 10)
referrer-policy/gen/worker-module.http-rp/same-origin/fetch: 100.00% (10 / 10)
referrer-policy/gen/worker-module.http-rp/same-origin/xhr: 100.00% (10 / 10)
referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag: 100.00% (10 / 10)
referrer-policy/gen/srcdoc.meta/same-origin/img-tag: 100.00% (10 / 10)
referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag: 100.00% (10 / 10)
html/cross-origin-embedder-policy: 90.91% (11 / 10)
html/cross-origin-opener-policy: 76.92% (13 / 10)
html/semantics/forms/form-submission-0: 62.50% (16 / 10)
html/semantics/document-metadata/the-link-element: 50.00% (20 / 10)
url: 40.00% (25 / 10)
webstorage: 21.28% (47 / 10)
webaudio/the-audio-api/the-delaynode-interface: 100.00% (9 / 9)
referrer-policy/generic/subresource-test: 100.00% (9 / 9)
referrer-policy/generic: 100.00% (9 / 9)
service-workers/service-worker/ServiceWorkerGlobalScope: 90.00% (10 / 9)
html/rendering/widgets/button-layout: 75.00% (12 / 9)
html/semantics/forms/the-button-element: 64.29% (14 / 9)
html/semantics/grouping-content/the-ol-element: 39.13% (23 / 9)
eventsource: 20.00% (45 / 9)
html/semantics/scripting-1/the-script-element: 18.75% (48 / 9)
html/semantics/embedded-content/the-canvas-element: 7.38% (122 / 9)
service-workers/service-worker/navigation-preload: 100.00% (8 / 8)
custom-elements/form-associated: 100.00% (8 / 8)
bluetooth/service/getCharacteristic: 100.00% (8 / 8)
fetch/metadata/sec-fetch-dest/redirect: 100.00% (8 / 8)
fetch/metadata/redirect: 100.00% (8 / 8)
html/semantics/embedded-content/media-elements/interfaces/TextTrackCue: 100.00% (8 / 8)
html/semantics/embedded-content/the-img-element/decode: 100.00% (8 / 8)
WebCryptoAPI/encrypt_decrypt: 100.00% (8 / 8)
WebCryptoAPI/sign_verify: 100.00% (8 / 8)
workers/modules: 88.89% (9 / 8)
fetch/cross-origin-resource-policy: 88.89% (9 / 8)
html/semantics/embedded-content/the-object-element: 61.54% (13 / 8)
FileAPI/url: 53.33% (15 / 8)
fetch/corb: 42.11% (19 / 8)
quirks: 42.11% (19 / 8)
html/browsers/browsing-the-web/unloading-documents: 36.36% (22 / 8)
offscreen-canvas/the-canvas-state: 21.05% (38 / 8)
offscreen-canvas/drawing-images-to-the-canvas: 13.79% (58 / 8)
html/browsers/history/the-history-interface: 10.39% (77 / 8)
webaudio/the-audio-api/the-waveshapernode-interface: 100.00% (7 / 7)
bluetooth/adapter: 100.00% (7 / 7)
bluetooth/characteristic/readValue: 100.00% (7 / 7)
referrer-policy/css-integration/image: 100.00% (7 / 7)
eventsource/shared-worker: 100.00% (7 / 7)
html/semantics/forms/the-fieldset-element: 87.50% (8 / 7)
html/semantics/embedded-content/media-elements/interfaces/TextTrack: 70.00% (10 / 7)
html/webappapis/scripting/processing-model-2/unhandled-promise-rejections: 70.00% (10 / 7)
fetch/api/redirect: 63.64% (11 / 7)
html/semantics/document-metadata/the-style-element: 58.33% (12 / 7)
html/semantics/forms/the-form-element: 41.18% (17 / 7)
html/semantics/embedded-content/the-img-element: 26.92% (26 / 7)
html/browsers/browsing-the-web/history-traversal: 25.00% (28 / 7)
fullscreen/api: 14.89% (47 / 7)
2dcontext/shadows: 11.29% (62 / 7)
webmessaging/broadcastchannel: 100.00% (6 / 6)
fetch/api/request/destination: 100.00% (6 / 6)
html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration: 100.00% (6 / 6)
html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh: 100.00% (6 / 6)
WebCryptoAPI/import_export: 100.00% (6 / 6)
quirks/unitless-length: 100.00% (6 / 6)
webvr: 85.71% (7 / 6)
webaudio/the-audio-api/the-audionode-interface: 75.00% (8 / 6)
html/browsers/the-window-object/named-access-on-the-window-object: 75.00% (8 / 6)
FileAPI/file: 75.00% (8 / 6)
html/rendering/replaced-elements/svg-embedded-sizing: 66.67% (9 / 6)
workers/semantics/multiple-workers: 60.00% (10 / 6)
html/rendering/replaced-elements/attributes-for-embedded-content-and-images: 33.33% (18 / 6)
html/browsers/browsing-the-web/scroll-to-fragid: 33.33% (18 / 6)
html/dom/documents/dom-tree-accessors: 20.00% (30 / 6)
html/browsers/browsing-the-web/navigating-across-documents: 11.54% (52 / 6)
webaudio/the-audio-api/the-iirfilternode-interface: 100.00% (5 / 5)
bluetooth/characteristic/writeValue: 100.00% (5 / 5)
bluetooth/characteristic/getDescriptors: 100.00% (5 / 5)
fetch/api/abort: 100.00% (5 / 5)
fetch/stale-while-revalidate: 100.00% (5 / 5)
referrer-policy/css-integration/font-face: 100.00% (5 / 5)
referrer-policy/css-integration/svg: 100.00% (5 / 5)
websockets/stream-tentative: 100.00% (5 / 5)
fetch/nosniff: 83.33% (6 / 5)
html/infrastructure/common-dom-interfaces/collections: 83.33% (6 / 5)
html/browsers/origin/relaxing-the-same-origin-restriction: 83.33% (6 / 5)
2dcontext/drawing-paths-to-the-canvas: 71.43% (7 / 5)
html/semantics/embedded-content/the-img-element/sizes: 71.43% (7 / 5)
dom/collections: 62.50% (8 / 5)
html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis: 62.50% (8 / 5)
FileAPI/blob: 62.50% (8 / 5)
touch-events: 62.50% (8 / 5)
custom-elements/parser: 50.00% (10 / 5)
fetch/api/headers: 45.45% (11 / 5)
html/syntax/parsing-html-fragments: 45.45% (11 / 5)
html/browsers/sandboxing: 45.45% (11 / 5)
html/semantics/document-metadata/the-base-element: 45.45% (11 / 5)
fetch/http-cache: 41.67% (12 / 5)
html/browsers/windows: 35.71% (14 / 5)
html/semantics/embedded-content/the-embed-element: 35.71% (14 / 5)
webaudio/the-audio-api/the-biquadfilternode-interface: 33.33% (15 / 5)
webaudio/the-audio-api/the-audiobuffersourcenode-interface: 26.32% (19 / 5)
webmessaging/without-ports: 16.67% (30 / 5)
2dcontext/pixel-manipulation: 8.33% (60 / 5)
html/syntax/parsing: 6.10% (82 / 5)
bluetooth/device/gattserverdisconnected-event: 100.00% (4 / 4)
bluetooth/server/disconnect: 100.00% (4 / 4)
bluetooth/requestDevice/acceptAllDevices: 100.00% (4 / 4)
2dcontext/scroll: 100.00% (4 / 4)
fetch/security: 100.00% (4 / 4)
subresource-integrity: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/unset/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/unset/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
WebCryptoAPI/derive_bits_keys: 100.00% (4 / 4)
permissions: 80.00% (5 / 4)
html/infrastructure/safe-passing-of-structured-data: 80.00% (5 / 4)
html/semantics/embedded-content/the-area-element: 80.00% (5 / 4)
html/semantics/forms/form-submission-target: 80.00% (5 / 4)
wasm/jsapi/constructor: 80.00% (5 / 4)
html/rendering/non-replaced-elements/form-controls: 66.67% (6 / 4)
offscreen-canvas/conformance-requirements: 66.67% (6 / 4)
workers/baseurl/alpha: 50.00% (8 / 4)
FileAPI: 50.00% (8 / 4)
webaudio/the-audio-api/the-analysernode-interface: 44.44% (9 / 4)
hr-time: 44.44% (9 / 4)
html/rendering/replaced-elements/the-select-element: 44.44% (9 / 4)
html/obsolete/requirements-for-implementations/the-marquee-element-0: 36.36% (11 / 4)
workers/constructors/Worker: 33.33% (12 / 4)
html/semantics/forms/the-select-element: 30.77% (13 / 4)
webmessaging: 9.76% (41 / 4)
websockets: 4.82% (83 / 4)
2dcontext/path-objects: 3.01% (133 / 4)
webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface: 100.00% (3 / 3)
bluetooth/server/connect: 100.00% (3 / 3)
bluetooth/characteristic/getDescriptor: 100.00% (3 / 3)
bluetooth/characteristic: 100.00% (3 / 3)
fetch/range: 100.00% (3 / 3)
html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList: 100.00% (3 / 3)
html/semantics/embedded-content/media-elements/seeking: 100.00% (3 / 3)
html/semantics/forms/the-progress-element: 100.00% (3 / 3)
html/semantics/forms/the-output-element: 100.00% (3 / 3)
html/webappapis/microtask-queuing: 100.00% (3 / 3)
referrer-policy/generic/inheritance: 100.00% (3 / 3)
referrer-policy/css-integration/child-css: 100.00% (3 / 3)
workers/semantics/interface-objects: 75.00% (4 / 3)
dom: 75.00% (4 / 3)
html/syntax/serializing-html-fragments: 75.00% (4 / 3)
html/semantics/forms/the-label-element: 75.00% (4 / 3)
WebIDL/ecmascript-binding/es-exceptions: 60.00% (5 / 3)
html/browsers/the-windowproxy-exotic-object: 60.00% (5 / 3)
html/semantics/links/links-created-by-a-and-area-elements: 60.00% (5 / 3)
uievents/legacy-domevents-tests/approved: 60.00% (5 / 3)
mediasession: 60.00% (5 / 3)
workers/semantics/xhr: 50.00% (6 / 3)
bluetooth/idl: 50.00% (6 / 3)
html/semantics/text-level-semantics/the-a-element: 50.00% (6 / 3)
html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute: 42.86% (7 / 3)
html/rendering/non-replaced-elements/flow-content-0: 42.86% (7 / 3)
html/browsers/the-window-object/accessing-other-browsing-contexts: 37.50% (8 / 3)
websockets/cookies: 33.33% (9 / 3)
websockets/unload-a-document: 30.00% (10 / 3)
workers/interfaces/DedicatedWorkerGlobalScope/postMessage: 27.27% (11 / 3)
html/semantics/tabular-data/the-table-element: 25.00% (12 / 3)
html/semantics/forms/the-option-element: 25.00% (12 / 3)
html/semantics/forms/textfieldselection: 23.08% (13 / 3)
FileAPI/reading-data-section: 21.43% (14 / 3)
websockets/constructor: 15.00% (20 / 3)
html/semantics/forms/the-textarea-element: 14.29% (21 / 3)
webmessaging/with-ports: 12.50% (24 / 3)
2dcontext/the-canvas-state: 12.00% (25 / 3)
html/semantics/grouping-content/the-li-element: 11.54% (26 / 3)
2dcontext/transformations: 10.34% (29 / 3)
html/semantics/embedded-content/media-elements: 4.69% (64 / 3)
webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface: 100.00% (2 / 2)
webaudio/the-audio-api/the-oscillatornode-interface: 100.00% (2 / 2)
webaudio/the-audio-api/the-dynamicscompressornode-interface: 100.00% (2 / 2)
workers/interfaces/SharedWorkerGlobalScope/name: 100.00% (2 / 2)
bluetooth/service: 100.00% (2 / 2)
bluetooth/descriptor/writeValue: 100.00% (2 / 2)
bluetooth/descriptor/readValue: 100.00% (2 / 2)
bluetooth/characteristic/notifications: 100.00% (2 / 2)
2dcontext/hit-regions: 100.00% (2 / 2)
fetch/data-urls: 100.00% (2 / 2)
fetch/content-type: 100.00% (2 / 2)
html/infrastructure/urls/dynamic-changes-to-base-urls: 100.00% (2 / 2)
html/browsers/windows/document-access: 100.00% (2 / 2)
html/semantics/embedded-content/the-img-element/current-pixel-density: 100.00% (2 / 2)
html/semantics/tabular-data/processing-model-1: 100.00% (2 / 2)
html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents: 100.00% (2 / 2)
html/semantics: 100.00% (2 / 2)
html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/worker-module: 100.00% (2 / 2)
WebCryptoAPI/wrapKey_unwrapKey: 100.00% (2 / 2)
WebCryptoAPI/digest: 100.00% (2 / 2)
offscreen-canvas/image-smoothing: 100.00% (2 / 2)
offscreen-canvas/convert-to-blob: 100.00% (2 / 2)
webaudio/the-audio-api/processing-model: 66.67% (3 / 2)
webaudio/the-audio-api/the-audiocontext-interface: 66.67% (3 / 2)
custom-elements/custom-element-registry: 66.67% (3 / 2)
workers/semantics/run-a-worker: 66.67% (3 / 2)
html/rendering: 66.67% (3 / 2)
html/browsers/browsing-the-web/read-media: 66.67% (3 / 2)
html/semantics/embedded-content/media-elements/ready-states: 66.67% (3 / 2)
webaudio/the-audio-api/the-stereopanner-interface: 50.00% (4 / 2)
custom-elements/upgrading: 50.00% (4 / 2)
workers/examples: 50.00% (4 / 2)
html/interaction/focus/processing-model: 50.00% (4 / 2)
html/dom/elements/the-innertext-idl-attribute: 50.00% (4 / 2)
html/browsers/browsing-the-web/navigating-across-documents/source: 50.00% (4 / 2)
webaudio/the-audio-api/the-constantsourcenode-interface: 40.00% (5 / 2)
workers/semantics/encodings: 40.00% (5 / 2)
html/interaction/focus: 40.00% (5 / 2)
html/rendering/the-details-element: 40.00% (5 / 2)
html/browsers/origin/cross-origin-objects: 40.00% (5 / 2)
html/browsers/history/the-history-interface/joint_session_history: 40.00% (5 / 2)
html/semantics/embedded-content/media-elements/interfaces/TextTrackList: 40.00% (5 / 2)
html/semantics/text-level-semantics/the-bdo-element: 40.00% (5 / 2)
webaudio/the-audio-api/the-channelmergernode-interface: 33.33% (6 / 2)
html/browsers/windows/nested-browsing-contexts: 33.33% (6 / 2)
html/semantics/forms/form-control-infrastructure: 33.33% (6 / 2)
html/rendering/non-replaced-elements/the-hr-element-0: 25.00% (8 / 2)
html/semantics/embedded-content/media-elements/playing-the-media-resource: 25.00% (8 / 2)
html/webappapis/animation-frames: 22.22% (9 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/xhr: 20.00% (10 / 2)
referrer-policy/gen/top.http-rp/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/top.http-rp/same-origin/img-tag: 20.00% (10 / 2)
referrer-policy/gen/top.meta/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/top.meta/same-origin/img-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/script-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/iframe-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/img-tag: 20.00% (10 / 2)
html/webappapis/scripting/events/event-handler-processing-algorithm-error: 16.67% (12 / 2)
html/user-activation: 15.38% (13 / 2)
html/browsers/the-window-object/garbage-collection-and-browsing-contexts: 15.38% (13 / 2)
html/browsers/browsing-the-web/unloading-documents/unload: 9.52% (21 / 2)
webaudio/the-audio-api/the-scriptprocessornode-interface: 100.00% (1 / 1)
webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface: 100.00% (1 / 1)
service-workers/service-worker/multi-globals: 100.00% (1 / 1)
service-workers/cache-storage: 100.00% (1 / 1)
fullscreen: 100.00% (1 / 1)
custom-elements/htmlconstructor: 100.00% (1 / 1)
workers/interfaces/SharedWorkerGlobalScope: 100.00% (1 / 1)
dom/abort: 100.00% (1 / 1)
bluetooth/server: 100.00% (1 / 1)
bluetooth/characteristic/startNotifications: 100.00% (1 / 1)
webdriver/tests: 100.00% (1 / 1)
webxr/gamepads-module: 100.00% (1 / 1)
2dcontext/image-smoothing: 100.00% (1 / 1)
2dcontext/context-attributes: 100.00% (1 / 1)
fetch/content-encoding: 100.00% (1 / 1)
fetch/origin: 100.00% (1 / 1)
fetch/api: 100.00% (1 / 1)
fetch/cors-rfc1918: 100.00% (1 / 1)
fetch/images: 100.00% (1 / 1)
html/interaction/focus/document-level-focus-apis: 100.00% (1 / 1)
html/syntax/serializing-xml-fragments: 100.00% (1 / 1)
html/rendering/widgets/appearance: 100.00% (1 / 1)
html/rendering/replaced-elements/svg-inline-sizing: 100.00% (1 / 1)
html/browsers/the-window-object/security-window: 100.00% (1 / 1)
html/semantics/document-metadata/styling: 100.00% (1 / 1)
html/semantics/document-metadata/interactions-of-styling-and-scripting: 100.00% (1 / 1)
html/semantics/interactive-elements: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/location-of-the-media-resource: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/user-interface: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/mime-types: 100.00% (1 / 1)
html/semantics/embedded-content/the-frame-element: 100.00% (1 / 1)
html/semantics/embedded-content/the-img-element/update-the-image-data: 100.00% (1 / 1)
html/semantics/scripting-1/the-script-element/module/import-meta: 100.00% (1 / 1)
html/semantics/forms/the-meter-element: 100.00% (1 / 1)
html/semantics/forms/the-datalist-element: 100.00% (1 / 1)
html/webappapis/the-windoworworkerglobalscope-mixin: 100.00% (1 / 1)
html/webappapis/update-rendering: 100.00% (1 / 1)
uievents/legacy: 100.00% (1 / 1)
uievents: 100.00% (1 / 1)
websockets/interfaces/WebSocket/extensions: 100.00% (1 / 1)
wasm/serialization/arraybuffer: 100.00% (1 / 1)
webaudio: 50.00% (2 / 1)
fetch/api/credentials: 50.00% (2 / 1)
WebIDL: 50.00% (2 / 1)
html/infrastructure/urls/terminology-0: 50.00% (2 / 1)
html/rendering/replaced-elements/the-option-element: 50.00% (2 / 1)
html/rendering/replaced-elements/images: 50.00% (2 / 1)
html/browsers/browsing-the-web/navigating-across-documents/refresh: 50.00% (2 / 1)
html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort: 50.00% (2 / 1)
html/semantics/interactive-elements/the-summary-element: 50.00% (2 / 1)
html/semantics/embedded-content/image-maps/image-map-processing-model: 50.00% (2 / 1)
html/semantics/embedded-content/the-img-element/environment-changes: 50.00% (2 / 1)
html/semantics/forms: 50.00% (2 / 1)
html/semantics/text-level-semantics/the-wbr-element: 50.00% (2 / 1)
WebCryptoAPI/secure_context: 50.00% (2 / 1)
WebCryptoAPI: 50.00% (2 / 1)
wasm/jsapi: 50.00% (2 / 1)
offscreen-canvas/filter: 50.00% (2 / 1)
html/semantics/interactive-elements/the-details-element: 33.33% (3 / 1)
html/semantics/text-level-semantics/the-ruby-element: 33.33% (3 / 1)
referrer-policy/gen/top.http-rp/same-origin/a-tag: 33.33% (3 / 1)
referrer-policy/gen/top.meta/same-origin/a-tag: 33.33% (3 / 1)
referrer-policy/gen/req.attr/same-origin/a-tag: 33.33% (3 / 1)
webaudio/the-audio-api/the-gainnode-interface: 25.00% (4 / 1)
2dcontext/conformance-requirements: 25.00% (4 / 1)
html/rendering/the-css-user-agent-style-sheet-and-presentational-hints: 25.00% (4 / 1)
html/semantics/embedded-content/the-audio-element: 25.00% (4 / 1)
html/semantics/embedded-content/the-img-element/srcset: 25.00% (4 / 1)
html/semantics/forms/resetting-a-form: 25.00% (4 / 1)
html/semantics/text-level-semantics/the-br-element: 25.00% (4 / 1)
uievents/order-of-events/focus-events: 25.00% (4 / 1)
wasm/jsapi/memory: 25.00% (4 / 1)
quirks/text-decoration-doesnt-propagate-into-tables: 25.00% (4 / 1)
webaudio/the-audio-api/the-audiobuffer-interface: 20.00% (5 / 1)
dom/lists: 20.00% (5 / 1)
html/browsers/history/the-session-history-of-browsing-contexts: 20.00% (5 / 1)
html/webappapis/scripting/event-loops: 20.00% (5 / 1)
wasm/jsapi/instance: 20.00% (5 / 1)
wasm/jsapi/module: 20.00% (5 / 1)
gamepad: 20.00% (5 / 1)
html/semantics/forms/attributes-common-to-form-controls: 16.67% (6 / 1)
workers/interfaces/WorkerUtils/navigator: 14.29% (7 / 1)
workers/interfaces/WorkerGlobalScope/location: 14.29% (7 / 1)
html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color: 14.29% (7 / 1)
webgl: 14.29% (7 / 1)
eventsource/dedicated-worker: 12.50% (8 / 1)
html/semantics/scripting-1/the-template-element/template-element: 11.11% (9 / 1)
webmessaging/message-channels: 9.09% (11 / 1)
websockets/interfaces/WebSocket/send: 8.33% (12 / 1)
dom/traversal: 7.69% (13 / 1)
dom/nodes/Document-contentType/contentType: 6.67% (15 / 1)
html/dom/documents/dom-tree-accessors/document.getElementsByName: 6.67% (15 / 1)
html/browsers/windows/browsing-context-names: 6.67% (15 / 1)
html/the-xhtml-syntax/parsing-xhtml-documents: 6.67% (15 / 1)
2dcontext/drawing-rectangles-to-the-canvas: 3.12% (32 / 1)
2dcontext/line-styles: 2.78% (36 / 1)
html/semantics/scripting-1/the-script-element/module: 1.47% (68 / 1)
2dcontext/compositing: 1.05% (95 / 1)
Our goal is to tackle this list strategically, picking out directories to focus on that look interesting/worrying. A directory with a large number of tests and a large number of failures suggests that a feature being tested may not be fully implemented, or not implemented correctly. A directory with a large number of tests and a small number of failures suggests we might be missing some edge cases in the feature being tested. A directory with a small number of tests with a similar number of failures could go either way.