web-platform-tests / interop

web-platform-tests Interop project
https://wpt.fyi/interop
280 stars 28 forks source link

Preliminary State of HTML results #550

Closed foolip closed 4 months ago

foolip commented 11 months ago

Update: Look at @LeaVerou's comment instead, as that categorization has been done manually and can be trusted to a higher degree.

State of HTML 2023 is still running, but @SachaG has shared some preliminary results for this question:

Which existing HTML features or browser APIs are you unable to use because of browser differences or lack of support?

This is a freeform text question, and the normalized responses so far look like this:

popover_api    248
dialog_element    163
view_transitions    147
not_selector    119
has_selector    103
pwa    76
subgrid    40
web_components    38
datalist_element    35
declarative_shadow_dom    31
at_container    26
animations    25
input_type_date    22
file_system_access    20
temporal    18
transitions    18
aria    17
intl    16
navigation_api    16
shadow_dom    16
css_nesting    15
element_internals    12
grid    12
custom_elements    11
webrtc    11
backdrop_filter    10

Note that not_selector and has_selector are almost certainly overcounted, as "not" and "has" are common words, and the categorization hasn't been manually verified yet. For words that are not common in English, like "popover", I think the results are reliable.

I will comment on the proposals for features that are listed here.

LeaVerou commented 11 months ago

And here are the raw responses: https://coda.io/d/Pain-Points-Missing-Features_d7UVQ_fZW0V/Pain-Points_suclo#_lu3Cv (Working on manually classifying the Interop ones)

foolip commented 11 months ago

Thank you @LeaVerou! If you see something in the data that doesn't come through in the summarized form, or quotes that especially telling of the web developer need, please feel free to share here or on the relevant proposals.

foolip commented 11 months ago

I've commented on all proposals I could find now. These responses don't have a proposal:

LeaVerou commented 11 months ago

After manually reading all responses to the interop question and classifying them manually (including a fair bit of MDN research to identify alternative names, older names, map method names to APIs etc) these are the top 25 items:

# Normalized content Count % of all issues listed
1 Popover API 263 9.74%
2 View Transitions API 176 6.52%
3 <dialog> 162 6.00%
4 Temporal inputs (<input type="date"> etc) 130 4.81%
5 :has() 110 4.07%
6 <selectlist> 89 3.30%
7 PWA APIs 75 2.78%
8 FileSystem API 72 2.67%
9 Notifications API 48 1.78%
10 Subgrid 40 1.48%
11 Customized built ins 39 1.44%
12 <datalist> 35 1.30%
13 Web Components (generic) 34 1.26%
14 WebGPU 34 1.26%
15 Declarative Shadow DOM 33 1.22%
16 CSS Anchor Positioning 27 1.00%
17 Container Queries 26 0.96%
18 CSS Nesting 24 0.89%
19 Intl 23 0.85%
20 Color picker () 22 0.81%
21 inert attribute 21 0.78%
22 Web Share API 21 0.78%
23 @scroll-timeline 20 0.74%
24 Scrollbar styling 20 0.74%
25 Web Bluetooth API 19 0.70%

And these are all items.

foolip commented 11 months ago

Huge thank you @LeaVerou! I know that categorizing freeform text responses is a lot of work, but it's also very valuable! I'll take a look over this and see if any make sense as proposals.

foolip commented 11 months ago

Taking the top 16 items (>1% of responses) from that table and mapping it to proposals or existing focus areas:

# Feature Proposal
1 Popover API https://github.com/web-platform-tests/interop/issues/423
2 View Transitions API https://github.com/web-platform-tests/interop/issues/437
3 <dialog> Part of Interop 2022
4 Temporal inputs (<input type="date"> etc) Could be part of Forms: https://github.com/web-platform-tests/interop/issues/480
5 :has() Part of Interop 2023: https://github.com/web-platform-tests/interop/issues/432
6 <selectlist> N/A
7 PWA APIs N/A (too broad)
8 FileSystem API N/A
9 Notifications API https://github.com/web-platform-tests/interop/issues/534
10 Subgrid Part of Interop 2023: https://github.com/web-platform-tests/interop/issues/470
11 Customized built ins Could be part of Web Components: https://github.com/web-platform-tests/interop/issues/466
12 <datalist> N/A
13 Web Components (generic) Part of Interop 2023: https://github.com/web-platform-tests/interop/issues/466
14 WebGPU N/A
15 Declarative Shadow DOM https://github.com/web-platform-tests/interop/issues/501
16 CSS Anchor Positioning https://github.com/web-platform-tests/interop/issues/455

Some of the N/A items are worth looking into and considering a proposal, but overall I'm very encouraged by the alignment between these survey results and current+proposed focus areas!

jensimmons commented 11 months ago

Customized built ins does not have a consensus-based web standard. Apple has repeated stated our objection. Which is why it wasn't part of Interop 2023.

SachaG commented 11 months ago

@jensimmons (or anybody else that's interested): let me know if you'd like to get early access to the data. We have a Discord group we use to coordinate and share early previews of the dataset and survey results.

LeaVerou commented 10 months ago

Preliminary results in slide form from today’s presentation: https://docs.google.com/presentation/d/1AVsalCAZVITkYZCLxux5D2LbwLukjjuH9cm-vZRYy-w/edit#slide=id.p

More notably:

image
jensimmons commented 10 months ago

Thanks @LeaVerou.

What does "data table" mean? Under "missing elements (predefined)".

LeaVerou commented 10 months ago

Thanks @LeaVerou.

What does "data table" mean? Under "missing elements (predefined)".

This was the full question:

image

(You can see all of them by going to https://survey.devographics.com/en-US/survey/state-of-html/2023 (though note that the response UI is now disabled, since the survey has closed)

jensimmons commented 10 months ago

So "data table" means an HTML table as we have now, but with built in functionality for sorting and filtering? Same semantics, new behavior?

LeaVerou commented 10 months ago

So "data table" means an HTML table as we have now, but with built in functionality for sorting and filtering? Same semantics, new behavior?

Yup. I'm currently drafting a new Open UI issue on this.

chris-muller commented 7 months ago

So "data table" means an HTML table as we have now, but with built in functionality for sorting and filtering? Same semantics, new behavior?

I'd also hope for/expect built in support for pagination (or at least graceful hooks of some kind to help manage pagination (client and server)).