-
Notifications
You must be signed in to change notification settings - Fork 27
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
Form Controls #11
Comments
So I'm in favour of improving form controls in general, but I'm concerned about the lack of spec/tests for the areas that are causing developer pain. Is there an area that meets the bar of:
If not it seems like the first step in this area would be to agree on the path forward at the specification level and revisit including this in a future iteration of the Interop initative. |
@mfreed7 What is your proposal for inclusion of a specific web technology to be included in Interop 2022? "Improve form controls" is the mission of the Open UI project, and the HTML and CSS working groups. Interop 2022 is for encouraging browser rendering engines to implement features that have specifications, or to fix interop bugs that are particularly problematic for web developers. |
It strikes me that it might be easier for me to explain my comments/questions in the meeting and on the other issue with specific examples and questions. "form element stylability" is too general thing probably, and is not well defined enough and seems mostly wound up in openui sutff. There might be something very specific worth looking at there, but I think it would need to be specific. However, unprefixed Inevitably, for some of these things there will be reasons like "the spec is unclear" or "the spec left this undefined, but there is a defacto standard, it seems". This part has potential overlap with other venues, but I believe that's ok - not so much solving a new problem as filling observable gaps? There are things, including PRs with tests like whatwg/html#5099 which point out things like this - is that 'in scope'? If so, I would say that also could go in a "forms" (or "interactive elements") bucket. I think there are deltas on datalist too, but there are few tests. On twitter someone also suggested that there are "cross-browser differences in which events fire when. E.g., while typing each character in an input or keyboard scrolling through a select list." Not sure if those are known or have tests, but again, seems to fit a possible 'theme' here and if so would fit into what I'd expect would probably be appropriate. |
For |
Thanks for the comments here. I think I may have confused things by starting my list with "Form element stylability". I didn't intend this issue to be about forward-looking things that OpenUI is working on. As several have pointed out, that type of "new stuff" likely doesn't belong here. But I do think perhaps some corner case form control stylability things could be included here? Things that provide developer frustration currently? Due to the poor state of form element standardization, perhaps many of these are going to end up being controversial. But just for a quick example,
I also just want to really +1 the comment from @bkardell. It seems like there's a collection of behaviors that do meet the bars above. It'll take some work to collect them, but that's the intention of this issue. @josepharhar from the Chromium team is willing to try to do that collection, if folks think this is a worthwhile area to include in Interop2022. |
Rather than spending more time debating whether or not we should perhaps consider a to-be-determined-in-the-future list of possibilities, I’d like to assert that yes, this is an area folks are willing to consider. There’s no one objecting to suggestions that concern form controls. What’s needed is a specific list. What exactly is proposed? As we make decisions about what will be included in Interop 2022, we will be considering specific technology or bugs. Without a list, we won’t be able to make any decisions. We can’t just “write a blank check”. |
Great! I guess I misunderstood your first post. As I said, @josepharhar will work on putting together a proposed list. |
Here is a concrete list of things we could do, with specific actions bolded.
Other thoughts:
Note: When I say "entries" or "spreadsheet", I'm talking about the rows of this state of CSS feedback spreadsheet: https://docs.google.com/spreadsheets/d/1W1scqBvz6xRERPGOCm_29cc71U9CJiIlfeNNyys-27M/edit#gid=1399297592 |
To be clear, I presume you’re suggesting we (browser vendors collectively) do this work in the appropriate group (be in the WHATWG HTML workstream, the W3C CSS WG, or W3C Open UI CG? On the whole, I think including anything which doesn’t already have a specification (in at least draft form) should probably be excluded, as otherwise we’re aiming to go from a blank page to an interoperably implemented specification within a single year, which seems very ambitious at best, and utterly unrealistic at worst. |
This issue could probably be handled similarly to the suggestion in #4 (comment), including the well-spec'd and -tested things, and some more future-looking work happening, but not as part of a metric. |
Given the confusion in the description and discussion here - just for ease of following, can I suggest that we open a new issue with the specifics and close this one... it's too easy to start at the top and immediately read it differently than I think several of us are talking about which does not include future looking work. I don't think editing the OP is better. |
It seems like maybe I should be providing a list of existing WPTs instead of suggesting spec or test changes...? |
Based on the confusion here, I think a new issue with a list of:
will be needed to assess the proposal for Interop 2022. If there are additional areas where you think we aren't there yet, but where it might be possible to make enough progress on pre-implementation work (e.g. specs) in the next year to include in a future iteration of this scheme, open an additional issue for those parts, explaining the situation. |
That’s right. This group does not have the ability to work on specifications. Web standards are created by working groups (and community groups) that have a rigorous process for ensuring the ideas generated by the group are dedicated to open source and can become part of the web. We cannot to put together an ad-hoc group to invent something new, without the legal contracts in place to protect the ownership of that invention. For example, in order to be a member of the CSS Working Group, you have to either be an Invited Expert who signs a stack of documents pledging the legal ownership of the work you do to the W3C, or you are an employee of a corporation, to which you've pledged ownership of the work you are doing to them, and they've formally joined the W3C and agreed that the work there done by their employees is owned by the W3C. It's a big deal, and involves a lot of lawyers. This group is not a working group for writing specifications. We are simply communicating about our separate efforts to implement specs that were created elsewhere, to share tests to see if we've done a good job with those implementations, and to make it easy to talk about these efforts with web developers. This group can collaborate on manual testing and writing up a report of findings (as suggested to better understand the current state of viewport measurements #4). Such findings could then be taken up by a Working Group as a to-do list for spec work. But there's no need for Interop 2022 to do so for the topic of form controls, because the Open UI Community Group was already formed to do exactly that. It does not make sense to duplicate efforts in two places. If you want to help make headway improving interop for form controls as part of Interop 2022, please refer to existing web standards (with links), and highlight areas where browsers do not match those standards (with tests). Opening a new issue with a much tighter scope is a good idea. The larger question of improving developer experience of styling form controls is especially tricky, because the web standards for form controls are vague and leave a lot up to interpretation by the browser. Form controls are not 100% interoperable because of the long history of them being considered part of the browser UI or operating system UI, not part of a web page. Each browser decides for themselves how they want their color picker or calendar widget to look & work. And that’s not going to change anytime soon. Such controls are designed to be easily understood by the end user, in the context of using their device. If you are interested in tackling the larger conundrum — figuring out how to make it possible for web developers to more easily create branded form controls consistent across browsers, despite the fact each browser will decide for itself how to make default controls — then I do suggest you get involved with Open UI. I know progress is slow, and perhaps you want things to happen much more quickly, but this is an incredibly complex space. It will take years to solve these needs, and Open UI is already making great progress. |
Thanks for creating this list, @josepharhar. This makes discussing form controls very concrete. Excellent. For WebKit bug tickets…
|
Looking at the data from chromestatus.com:
AFAICT, the reasons why month/week are so comparatively low aren't because of lack of interop, but because they are relatively niche. (And indeed, part of the reason why Safari on macOS lacks support for them is because macOS doesn't provide month or week pickers either.) Focusing on them especially seems perhaps unjustified, given I don't see much evidence of developer interest? It is, after all, easy to use the native ones then fallback. The survey results linked do cite date/time inputs, but I don't think we have any clear signals as to what the problems are. Given those survey results are focused on CSS, one might assume it's about styling the inputs, which those tests don't cover (and isn't specified anywhere). There's certainly interop issues there—I'm not questioning that—but it's the question of whether it's a priority, especially with any focus we want for Interop 2022. At least personally, I think the rest of the things in the above comment (i.e., aside from input elements) are not unreasonable, but I do wonder if we should split them into smaller chunks than a singular "form controls" one. |
Thanks for the feedback!
Thanks, I added this bug to the appearance section of my comment. I kept the new webkit bug I filed in there as well though because 143842 is marked as fixed and doesn't appear at first to be about the new spec behavior that will hopefully be changed soon.
Done! I filed two new WebKit bugs for the
This bug is still open and includes |
Sam makes a pretty compelling case to exclude |
Regarding events on disabled form controls: Sebastian |
I have now labeled (almost) all tests listed in #11 (comment) with the @josepharhar can you go through that and see if I seem to have missed anything? I excluded crash and tentative tests, As we review this test list, looking at tests that don't pass or fail in the usual manner is worthwhile, mostly timeouts and harness errors: Most likely some of the tests could be improved to fail faster and with a clearer reason. |
A number of tests for this area came up in my analysis in #48. Quoting:
I would encourage folks to search for the name of their browser in this comment and see if anything needs investigation/fixing. A bunch of the issues are about week/month input. web-platform-tests/wpt-metadata#2401 didn't remove all of those tests, but for what remains tests will have to be split. @josepharhar is this something you might look into? (I didn't check who wrote the tests.) |
Thanks! I linked this bug here: web-platform-tests/wpt-metadata#2409
Sounds good to me
Oh, I didn't notice this, I thought they were just timeout. I now see that they say "MISSING". When you open the test on wpt.live, the page constantly reloads very fast in safari, maybe that's why there are other issues? As opposed to an actual infra problem?
I'll try fixing this test if I can.
Isn't selection-not-applicable.html the only one? I'll try splitting it into two tests. |
I just wrestled with selection-start-end.html for a while, and I'm happy to just let it keep timing out until webkit implements the corresponding behavior. I made a PR to separate week and month cases from selection-not-application.html: web-platform-tests/wpt#32479 |
Taking form-submit-button-click.html as an example, the test is indeed MISSING, but above that you'll see "Harness status" and "ERROR". If you toggle "Show Details" you'll see this text squashed into a narrow box:
Opening http://wpt.live/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit-button-click.html in STP 137 indeed just keeps reloading. I assume the problem is that the form is submitted and reloads the page. When wptrunner then tries to poll the page for test results (I think) the original page is gone. Is there any way for this test to fail before the navigation happens, or is the navigation happening the bug itself that the test is supposed to detect? If it is, then I think we'll have to live with the ERROR, that it's a surprising manifestation of a real bug.
Thanks for splitting! There are also week/month subtests in these tests:
|
I tried querying window.history to see if the main page was navigated backwards to, which I think is the case where the test keeps restarting, but I couldn't quite figure it out.
|
For reference, this is what we considered and decided:
|
…2479) * Separate week and month cases from selection-not-application.html This was discussed here: web-platform-tests/interop#11 (comment) * use meta variant instead of two tests * Update html/semantics/forms/textfieldselection/selection-not-application.html Co-authored-by: Philip Jägenstedt <philip@foolip.org>
…tion-not-application.html, a=testonly Automatic update from web-platform-tests Separate week and month cases from selection-not-application.html (#32479) * Separate week and month cases from selection-not-application.html This was discussed here: web-platform-tests/interop#11 (comment) * use meta variant instead of two tests * Update html/semantics/forms/textfieldselection/selection-not-application.html Co-authored-by: Philip Jägenstedt <philip@foolip.org> -- wpt-commits: d6d6e9898ed1a7cb994f5d2bc23e5b23d0e8b90c wpt-pr: 32479
…tion-not-application.html, a=testonly Automatic update from web-platform-tests Separate week and month cases from selection-not-application.html (#32479) * Separate week and month cases from selection-not-application.html This was discussed here: web-platform-tests/interop#11 (comment) * use meta variant instead of two tests * Update html/semantics/forms/textfieldselection/selection-not-application.html Co-authored-by: Philip Jägenstedt <philip@foolip.org> -- wpt-commits: d6d6e9898ed1a7cb994f5d2bc23e5b23d0e8b90c wpt-pr: 32479
…tion-not-application.html, a=testonly Automatic update from web-platform-tests Separate week and month cases from selection-not-application.html (#32479) * Separate week and month cases from selection-not-application.html This was discussed here: web-platform-tests/interop#11 (comment) * use meta variant instead of two tests * Update html/semantics/forms/textfieldselection/selection-not-application.html Co-authored-by: Philip Jägenstedt <philip@foolip.org> -- wpt-commits: d6d6e9898ed1a7cb994f5d2bc23e5b23d0e8b90c wpt-pr: 32479
…tion-not-application.html, a=testonly Automatic update from web-platform-tests Separate week and month cases from selection-not-application.html (#32479) * Separate week and month cases from selection-not-application.html This was discussed here: web-platform-tests/interop#11 (comment) * use meta variant instead of two tests * Update html/semantics/forms/textfieldselection/selection-not-application.html Co-authored-by: Philip Jägenstedt <philip@foolip.org> -- wpt-commits: d6d6e9898ed1a7cb994f5d2bc23e5b23d0e8b90c wpt-pr: 32479
Description
Form controls are mentioned frequently as a source of developer frustration. While "form controls" is a quite general area, there are several recurring themes (e.g. see the most recent state of css survey results):
<select>
,<input type=checkbox>
, and<input type=radio>
, but also generally for all input types.<input type=range>
.accent-color
support.appearance:none/auto
(unprefixed).Specification
Other than
accent-color
, form element appearance is not (well) specified.Tests
Accent-color
is fairly-well tested, except around the actual appearance withaccent-color
applied.Rationale
Forms and forms-related-interop problems are very common developer complaints, e.g. state of CSS.
The text was updated successfully, but these errors were encountered: