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

MDN short surveys design #196

Closed
foolip opened this issue Oct 11, 2022 · 22 comments
Closed

MDN short surveys design #196

foolip opened this issue Oct 11, 2022 · 22 comments

Comments

@foolip
Copy link
Member

foolip commented Oct 11, 2022

I have proposed to run short surveys on MDN to get some additional signals on the relative interest in the different features being proposed for Interop 2023.

This is not the only input for Interop 2023, just one more data point, and will have its blind spots.

We have a lot of proposals, and some of them have a very different target audience. Most of MDNs page views are for JavaScript reference docs like Array, so asking all MDN visitors about all features is not practical. Instead I've tried to created groups and targeting based on topic.

In the lists below, the survey wording is the first level and the proposals these map to (not shown in survey) is in a nested level. This is inherently an imperfect mapping, and wording choice can affect the results.

Prompt and Question

Survey prompt before expanding: "Browser vendors are working together to improve feature support across browsers. Shape the future of the web by taking this 1-question survey!"

(I'm open to toning down the "Shape the future of the web" bit.)

Question: "For your needs as a developer, which features should be improved across browsers in the coming year? This means enabling support or fixing bugs. Please rank up to 5. (This is not a complete list, other features may also be planned.)"

CSS & HTML

For pages under CSS and HTML, show this list:

APIs & JavaScript

For pages under API and JavaScript, show this list:

Not Included

These proposals aren't included, for a variety of reasons:

@captainbrosset
Copy link

Just a thought: should highly requested features like Container Queries or :has be removed? I think we already know developers want them, and they will probably dwarf all of the other features in the survey.

@foolip
Copy link
Member Author

foolip commented Oct 11, 2022

@captainbrosset I think those two are indeed the two that will be the most popular choices, based on State of CSS results. The question becomes if people will notice the glaring omissions and conclude our survey is nonsense and abandon. And to what extent will this be mitigated by saying it's not a complete list?

@foolip

This comment was marked as outdated.

@foolip foolip changed the title MDN short survey design MDN short survey design (CSS features) Oct 12, 2022
@foolip foolip changed the title MDN short survey design (CSS features) MDN short surveys design Oct 12, 2022
@foolip
Copy link
Member Author

foolip commented Oct 12, 2022

I've updated this issue to describe two targeted surveys. It's hard to make a perfect split and two features are listed in both, while others aren't included in either. Open to feedback. I think we shouldn't exceed 20 options for either survey, that starts to be unreasonable.

@foolip
Copy link
Member Author

foolip commented Oct 13, 2022

I want to highlight a few things I think are tricky for discussion in #209:

  • Should Web Components be broken down further? I can't see how, and suspect developers don't know the names of all the parts, or use different terminology than I would come up with.
  • Should we ask about AVIF and JPEG XL support?
  • Should we ask about MathML?

@jgraham
Copy link
Contributor

jgraham commented Oct 13, 2022

Being asked to compare fixing existing features with adding new features is quite strange e.g. the "History API" proposal is mostly fixing existing features and is only somewhat related to the location object. There's also a number of other problems here e.g. we know that editing APIs are so complex that editing basically has to be implemented using additional js libraries, so I wouldn't expect those things to come up very high, but that doesn't mean that work to make those libraries more reliable isn't going to make the web better for users.

Also the options aren't very fungible on the browser side; although maybe the CSS-* features are more or less the same team, there isn't a prioritisation decision to be made on those features vs e.g. clipboard APIs because different people would do the work.

Overall I'm not sure that the premise of having a survey that maps ~ 1:1 with proposals is really likely to give us data that is unambigously useful.

@tapananand
Copy link

Just a thought regarding exclusion of #213 from the survey, I think the developer impact here primarily is not being able to use WebAssembly threads and SharedArrayBuffer, so could that be considered under the JavaScript category similar to other things like WebNN or WebTransport?

@foolip
Copy link
Member Author

foolip commented Oct 20, 2022

I've updated the proposal again, keeping to 20 options in each survey. Some hard and subjective calls were required, and in the end I had to just omit some features like #224 because there was no obvious other option to remove instead.

When reviewing or proposing changes, when suggesting an addition, please also suggest a removal so that we stick to 20.

@foolip
Copy link
Member Author

foolip commented Oct 20, 2022

@tapananand sorry I didn't respond earlier. I think both WebAssembly and SharedArrayBuffer would be recognizable options to developers, but also much broader than what's proposed in #213. If we did have a strong signal that wasm (for example) was important, I'm therefore not sure how to use that signal. We have this problem to some degree in other cases as well, like "CSS color functions" actually being more broad than what is proposed as an addition for Interop 2023. I've done as well as I could with the proposal now, but recognize it's imperfect. It's still open to suggestions though.

@foolip
Copy link
Member Author

foolip commented Oct 20, 2022

OK, so now tweaking the question a bit in response to #209, @jensimmons's feedback in particular. I suggest:

For your needs as a developer, which features should be improved across browsers in the coming year? This means enabling support or fixing bugs. Please rank up to 3. (This is not a complete list, other features may also be planned.)

Regarding "Please rank up to 3", I've learned that we can pick another number. Given that we now have 20 options in each survey, I suggest we allow up to 5 choices instead.

@nt1m
Copy link
Member

nt1m commented Oct 23, 2022

@foolip #225 and #224 could be grouped under the "CSS pseudo-classes" category.

@foolip
Copy link
Member Author

foolip commented Oct 25, 2022

@nt1m the pseudo-classes are a bit of an odd category already, and the existing ones (:blank, :empty, :modal, :user-invalid, :user-valid) aren't really a natural grouping, but I thought it'd be better than listing them individually or not at all. It would be a very long list if we add in #225 and #224.

I do actually think that both #225 and #224 are more likely to be recognized and picked than at least #114, so if we could find one additional optional to remove, we could add them both separately. We'd also need to rename the existing option for pseudo-classes I think, but not sure to what?

@foolip
Copy link
Member Author

foolip commented Oct 25, 2022

There are staging links for the two surveys now for review:

@web-platform-tests/interop please review. (I'll put this on Thursday's agenda as well.)

@nt1m
Copy link
Member

nt1m commented Oct 25, 2022

@foolip Thanks for putting these together! Here are my initial thoughts:

  • "Web Components" should only be in one of the two surveys, possibly just the JS one (most the APIs involve JS)
  • "Custom Paint API" should only be in one of the two surveys, possibly just the CSS one
  • "Neural Network API" I doubt that is going to be part of next year's effort, due to the early stage of the spec and the fact that it's difficult to test, so I'd rather leave it out for something that is more likely going to get in.
  • CSS color spaces or CSS images could include gradient color space interpolation (issue Interpolation color space for gradients #109)
  • I think issue :nth-* pseudo-classes interoperability #225 could actually fit in "CSS pseudo-classes" as ":nth-child() with selector-list argument" as it's an extension to existing pseudo-classes.

@foolip
Copy link
Member Author

foolip commented Oct 27, 2022

We discussed this in #240 and agreed to the following changes:

  • "Web Components" only in APIs & JavaScript
  • "Custom Paint API" only in CSS & HTML
  • Drop "Neural Network API"

Then I was to work through the last two bullets and suggest on the issue. Here are my suggestions.

Change the wording from:

CSS color functions (color(), lab(), etc.)

to:

CSS color spaces and functions (color(), lab(), gradients, etc.)

The final bullet is the trickiest. The pseudo-class option is currently:

CSS pseudo-classes (:blank, :empty, :modal, :user-invalid, :user-valid)

It's already stretching what's reasonable to group, and if this options ranks highly we'll have to do a bit of guessing about which pseudo-classes drew the attention. Adding :nth-child() makes this even harder, but here's what it would look like:

CSS pseudo-classes (:blank, :empty, :modal, :user-invalid, :user-valid, :nth-child() with selector-list argument)

I think my best suggestion in the end is to split it like this:

  • CSS :blank and :empty pseudo-classes
  • CSS :user-invalid and :user-valid pseudo-classes
  • CSS :nth-child() pseudo-class with selector-list argument

That would push the total option count to 21, so we'd remove the speak-as option, as the one I guess will have the least recognition of all the options. (Accessibility is first and foremost a user need and also a developer specialization, so judging its importance by overall web developer demand is hard.)

@nt1m between the different options for pseudo-classes, do you have a preference?

@foolip
Copy link
Member Author

foolip commented Oct 28, 2022

Given time constraints I'll make a decision myself, to split pseduo-classes into 3 and drop speak-as. The :modal pseudo class also won't be listed, it's a small fix to implement and I think the case for it is strong without survey results. (We're planning to support #135.)

@foolip
Copy link
Member Author

foolip commented Oct 28, 2022

I've made the updates now. Since there was now room in the API section, I added "Storage quota estimation (navigator.storage.estimate())"

@foolip
Copy link
Member Author

foolip commented Nov 1, 2022

This survey is now live on MDN, as "pick up to 5" questions.

@foolip
Copy link
Member Author

foolip commented Nov 8, 2022

The results are in now:

@foolip foolip closed this as completed Nov 8, 2022
@romainmenke
Copy link

@foolip Where and how was this shared?
Is there a way to be notified of surveys like these?

@foolip
Copy link
Member Author

foolip commented Nov 11, 2022

@romainmenke I got the results from MDN via email and posted them to #245 + #246, so that's how they were shared this time. Mozilla is still working on the process for MDN short surveys, and this was only the 3rd such survey, so it's still in "beta" it's fair to say.

There's also a newly formed WebDX Community Group where we're collaborating on research like this, and web-platform-dx/developer-research#9 is the issue to follow for how we intend to make results public by default, not just via ad-hoc GitHub issues like I've done here. Please consider joining the CG if that sort of thing interests you!

@romainmenke
Copy link

Please consider joining the CG if that sort of thing interests you!

Joined :)
Thank you for sharing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants