-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Tiered browser support policy for Rust's web content #1985
Conversation
Seems like it's a bit short. Only newer versions (to put it simply) is a bit unrealistic for a lot of companies, which means we potentially exclude any new project in rust for these companies if they can't have access to documentation. |
Yup, that's the downside. Which is why I think it's interesting that GitHub (who also sells GitHub Enterprise into large companies) only supports the current version of Chrome, Firefox, Safari, and Edge. |
It's up to debate. I globally agree on the rest, just have a problem on this. |
For the purposes of debating in one place (we've been discussing this in IRC), could you post the versions of browsers and which tiers of support that you'd propose that we use instead? |
crates.io is also completely unusable without JavaScript, which always struck me as a strange decision. |
Yup, I mention that under "unresolved questions". |
Hi @kennytm, I see your "confused" reaction, what's confusing? |
text/0000-tiered-browser-support.md
Outdated
|
||
[Rust FAQ]: https://www.rust-lang.org/en-US/faq.html | ||
|
||
# Drawbacks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should mention that it is unknown what portion of users are unaccounted for by the tracking we use due to e.g. having disabled javascript, using privacy addons etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do mention that under the analytics section, do you think it should be repeated here?
I'm assigning to the core team, since this is a cross-cutting policy issue. |
@carols10cents Hi sorry I'm just confused why this even needs to go through the RFC process, seems very bureaucratic for me 😄. I think making sure it works on the current Chrome (Desktop + Mobile), Firefox, Safari (Desktop + Mobile) and IE 11, and avoid abusing fancy stuff (graceful degradation), should be enough to be portable in most places. |
Regarding crates.io needing Javascript: I'm uncomfortable with any site that needs Javascript merely to display static data. This also happens with Google Groups and a lot of other sites. It's okay to require Javascript for user interaction, even though it's preferably to have a fallback like plain HTML forms, if at all possible. What happened to progressive enhancement? |
So for the web browser versions I was speaking of, it's as follow:
|
So, stuff like this might not have to, but the RFC process is how we build community consensus; with something that affects everyone broadly like this, it's better safe than sorry, basically. |
A small suggestion: it might be nice to specify the tiers in terms of browserslist queries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is great!
text/0000-tiered-browser-support.md
Outdated
[ESR](https://www.mozilla.org/en-US/firefox/organizations/all/) (Firefox 52 | ||
will also be an ESR but it was just released). Firefox 52 was the current major | ||
version for most of this past month; I'm guessing the early adopters of 53 and | ||
54 are likely Mozilla employees. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
iirc, Firefox nightly has ~1 million users, so more than just employees, but still kind of a niche interest
text/0000-tiered-browser-support.md
Outdated
| UC Browser | 11 | 530 | 1.02 | 77.40 | | ||
| Chrome | 58 | 520 | 1.00 | 78.40 | | ||
| Safari (in-app) | (not set) (ios) | 500 | 0.97 | 79.37 | | ||
| Firefox | 54 | 472 | 0.91 | 80.28 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps it is worth looking at some more generic measure of market share as well - we want to optimise for the users we want to have, not just the users we already have
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caniuse has global browser usage stats, but I still think there's going to be large differences between the general population and a population of developers. I'm not sure where to find browser stats for developers rather than browser stats for rust developers; I'll do some investigating but if anyone knows of any resources I'd love to hear about them!
text/0000-tiered-browser-support.md
Outdated
- Safari current stable, one previous minor release, and the current version on | ||
iOS | ||
- UC Browser current stable | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should include Edge on this list - MS has big market share and we want to expand on Windows. Currently this feels like more of treating windows users second class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be up for adding Edge to tier 1, especially if we drop the concept of tier 2 entirely.
text/0000-tiered-browser-support.md
Outdated
- Bug reports for these browsers are left open but given a low priority, and | ||
closed if they are still open when a browser is old enough to drop out of | ||
this tier. | ||
- Pull requests to fix functionality for these browsers are accepted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO we should not have this tier - I don't see a meaningful difference between this and tier 9999
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we drop tier 2, I might change the labels to be "Supported browsers" and "Unsupported browsers" then. I'd like to see what people think though, I'd be fine with a simpler policy but I added tier 2 to add some definition around whether we'd accept patches for a particular version or not.
text/0000-tiered-browser-support.md
Outdated
|
||
- Follow best practices for accessibilty, fix bug reports from blind users, | ||
reach out to blind users in the community about how the accessibility of the | ||
web content could be improved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 100 - I think making screen reader support (and other accessibility issues) a tier 1 (or possibly tier 1.5) issue is more important than supporting any particular browser.
text/0000-tiered-browser-support.md
Outdated
- Follow best practices for colorblindness, such as have information conveyed | ||
through color also conveyed through an icon or text. | ||
- Follow best practices for making content usable from mobile devices with a | ||
variety of screen sizes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems like a big thing to me - supporting a browser is one thing, supporting it on every possible form factor is another. We should probably be explicit about this - while I think it is worth making r-l.o and the blog mobile friendly, we shouldn't commit to making rustdoc 100% mobile friendly for now (I'd like this as a goal, but not as a promise right now).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of these are goals rather than promises at the moment-- such as automated testing of rustdoc :)
Neat! I didn't know that existed! I will update soon :) |
Adding a bit from the original thread about removing the jQuery dependency, which I brought up: my main justification was that jQuery is a very large library that shouldn't be included statically with every generated rustdoc. It's around 2 MiB minimised, and because it's copied every time that rustdoc is rendered, it can potentially take up a lot of space if you have a lot of crates that use it. This is especially important because rustdoc doesn't actually make use of jQuery a lot, and almost all of the stuff in it could be replaced with a modern equivalent (as @GuillaumeGomez did). I agree that there becomes a point where you have to stop caring about really old implementations (does anyone remember how IE6 couldn't even display transparent PNGs?) but also I think that documentation size should also be taken into account when making decisions on what platforms to support. Also huge thumbs up to @carols10cents for making this RFC because while I believe that this is a decision that could easily be done without an RFC, I do really appreciate the community discussion. :) (This isn't actually going against anything said here, I'm just adding my probably-more-than-two-cents) |
What about console text-mode browsers like lynx, links? |
That's not even part of the supported browsers in the RFC. |
Right, I'm proposing that we don't make an effort to support lynx/links. Do you disagree @o01eg ? |
I was at RustFest this pass weekend and there was a blind Rust Developer there and he uses lynx/links in order to access many of the sites. I think from an accessibility point of view it might be a good idea to support them, even if it's a bit harder compared to the rest of them. |
I think that screen reader support is something we should definitely comment on at the very least. Ideally, all of Rust's content would be accessible as possible. |
Screen reader support is addressed in the Orthogonal but related non-proposals section of the RFC. TL;DR screen reader support/accessibility is an important thing we should definitely be working on. If lynx/links is one of the ways people do that, we should support those browsers, I didn't know about that and I will edit the RFC to add lynx/links under this section. |
Does anyone have any thoughts on @nrc's suggestion that tier 2 be removed? 👍 / 👎 on this comment if you don't have any thoughts beyond general in favor/not in favor? |
I agree, the line must be drawn somewhere but I think it would unfortunate for it not to include some version of Internet Explorer. It seems to me that it would be easiest to support IE 11. The linked pull request in this RFC even mentions that IE 11 would support the native browser APIs used. According to html5test.com, supporting IE 11 doesn't seem much harder to me than supporting the latest version of Safari. Most of the differences seem to me to be things that we don't need. The biggest difference is ES6 support, but we aren't currently using ES6 anyway. |
Also, we're talking docs rendering in here mainly. We don't need any fancy CSS feature, just a nice rendering, easy to read and interact with. This is why I think we're focusing way too much on too recent web browsers. |
Actually, I'm trying to talk about testing resources in here mainly. |
If we don't have the resources to test IE 11, then I can accept that. However, the RFC as currently written goes further than simply stating that unsupported browsers will be untested; it says that any bugs for unsupported browsers will be WONTFIX'd and closed. While it's not explicitly stated, I think a safe assumption is that a PR which introduces known regressions in an unsupported browser will still be accepted. The net result is that our web content will stop working in unsupported browsers very quickly. I would much prefer something like the original version of this RFC which had different tiers of support:
|
I'm interested to hear what the rest of @rust-lang/core thinks; this commit shows the diff of the two versions that have been proposed. |
That's not as I understood it. :-/ |
I'm personally ok with the RFC as-written, without a second tier of support. Would we still accept PRs to increase compatibility? If we did then I imagine that the process of having and not having a second tier would look very similar, modulo whether bugs are left open. |
@carols10cents I could go either way on this question, but like @nrc I suspect that in practice they'll work out roughly the same. That is, closing as WONTFIX in this case means we're not committing to fixing the issue, but would be open to a PR that does. I think I prefer to start with the RFC as it stands now, and see how it shakes out in practice (i.e., how often we see such issues). I think the most important step here is getting any testing and assurance. I think that alone is going to make our web presence of higher quality across the board. |
Seconded.
Yup, exactly: we can always add more support later. I think of this RFC as being going from nothing to something at all, not "what is the perfect set of things to test." If it turns out a lot of people need something we don't support, it's easy enough to modify the guarantees later, and by the same token, I'm sure we'll eventually drop support for browsers after a few years. |
Can you suggest improvements to the summary to make it clearer? |
It would depend on the complexity/maintenance burden of what the PRs were adding :-/ |
The feature name is literally : |
What about the summary is unclear though? Also, tiered_browser_support doesn't say anything about docs rendering, and testing is literally about ensuring we actually have browser support, so it is the same thing.... |
@GuillaumeGomez I think you're really nitpicking here; "support" in this context means "things we guarantee support for", and the mechanism by which we do that is through tests. |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
This may be nitpicky, but I feel Chrome for Android should be included in the browserlist. While I'm not aware of any major differences between the desktop and Android versions of Chrome, it would be good to be explicit and catch any cases where there are differences. Edit: |
The final comment period is now complete. |
Huzzah! This RFC has now been merged. Follow up, e.g. regarding Chrome for Android, should go on the tracking issue. |
Rendered!