User stylesheet support removed in Chrome 33
src.chromium.org
src.chromium.org
If user agent style sheets are removed from the engine, then extensions will have to start considering specificity when adding style sheets to the end of the list, because they'll all be considered "author" rules. But user style sheets shouldn't have to worry about specificity, per the spec.
This is an important accessibility feature of CSS and I'm disturbed at any reduction in support for this feature.
You can see that this is already the case in Firefox for Android, for instance, where you can't supply a user style sheet (the firefox profile is inaccessible to a user without root anyways). If you do want to provide user styles, Stylish is the featured (and almost universally recommended) extension for adding them. As you can see in the docs[1], though, anytime your !important rule comes up against an author's !important rule and you lose, the only workaround is to get more specific.
(it should be noted, though, that while CSS 2.1 does specify the cascade order with a "must", the user being able to specify styles in the first place is a "may", so Firefox for Android and Chrome for Android (which still doesn't support extensions) are spec compliant, they just make overriding styles more work and more fragile in the face of author changes)
[1] https://github.com/JasonBarnabe/stylish/wiki/Overwriting-pag...
https://gist.github.com/anonymous/9311394
Then turn on developer mode in extensions and load the directory. I made this while writing this comment, that's how easy it is.
I cannot guess the motivations of free plugin developers.
Chrome is not open source. Chromium is, but they are not the same.
1)Create a directory [fair enough] 2)put a manifest.json 2a) Add content_scripts 2b) css attribute 2b) plus a matching attribute and 3)css file. 4)Turn on developer mode 5) Load directory
Consider that many people learned how to write their own webpages with nothing more than a browser and a text editor, and the simplicity and soft error recovery characteristics of HTML is what I think was responsible for a large part of the Internet's growth. The barrier to entry was low, so it was easy to participate. Many people I know learned how to create webpages this way, largely by example (i.e. view source). Many of them also learned a bit of CSS too. These users produced and consumed content. But now, all I see is a growing divide between "users" and "developers", with these changes in browsers both reflecting and encouraging it, and I can't see that as being at all a good thing.
As the commit message notes, the current setup already requires putting a .css file in the right location inside the user-data-dir.
I don't want to imagine that process getting even more complex than it already is.
I'm not sure about Chrome, but Safari had a similar feature but it lacked a way to scope stylesheets to certain domain. If Chrome userstyles behaves the same way then I don't think this change will affect those users anyway since being able to scope userstyles to certain domain seems very important to them.
Then ask yourself why they are called user stylesheets?
IMHO all these attempts at taking away features "because most of the users won't ever use them" or similar reasons, and then saying "but developers can just do {more complicated thing}, it's better" is a terribly wrong direction that a lot of software seems to be heading in.
"Most of the users won't ever use them" is definitely a valid observation, but how about the ones who do? They probably use them because they discovered that feature and decided to play with it more, learn about it, and found out how useful it could be. By removing them, many more who would've otherwise discovered them will not, they will have a harder time learning about these things that benefit them, and instead remain ignorant. I find this to be almost patronising.
An extension like this: https://chrome.google.com/webstore/detail/stylish/fjnbnpbmke...
I sometimes wish Google would release numbers when they make changes. Finding out how many people used the plus operator (and how many of those used it correctly) made Google's removal of it slightly easier.
Edit: the + operator for searching, apologies for not being clear.
Its just plain hostile to users. Accessibility is just one of the many ways it is hostile to users. (Generally, the designer-centric app-ification of the web which has been going on for since commercial interests other than those whose interest was in selling access to the internet first discovered the value of the internet to reach the public is user hostile, and this is just part of it.)
Great phrase. I'm probably not the only one who desires a more user-centric web, and also web browser...
Opera is the only browser that felt like it let me apply my own stylesheet. Other browers behave inconsistantyl when adding my own. Even Firefox is odd. My compromise is just to specify foreground and background colours, with a larger font size, and an easy to read font. That way the layouts don't get that borked. Reading a well designed page with logical flow off can read quite well, if you apply your own styles, or use your desktops.
Now, when I do that, it creates "body > center > table > tbody > tr:nth-child(3) > td > table:nth-child(4) > tbody > tr:nth-child(1) > td > table > tbody > tr > td.default > span > font > p > a"
What happened here? Does that have anything to do with this User Stylesheet stuff? Because this new functionality is infuriating and I don't even really know what to search for to fix this change.
Uh ? Why remove that feature ? It's not buggy, unmaintainable or resource hungry.
This is not to be confused with developer mode on Chromebooks, which does make each boot very annoying.
Extensions exist which make this significaly friendly to all involved, such as Stylish.
Right, there should be a basic UI setting to do load an specified stylesheet as the default.
That doesn't excuse removing basic functionality expected of a user agent out of the core and requiring an extensionto provide it at all, especially since that requires reducing security (by extending the number of trusted parties) to use that basic function.
"We didn't expose this basic function well enough by default" is a good reason to improve the UX related to the function, its not a good excuse to make the situation even worse.
CSS stylesheets are nicely portable and should work in any (well, most) browser.
In general, a browser agnostic solution is preferable to a browser-specific solution, if they have the same functionality....
Stylesheets are also arguably much simpler to write, and far more concise for their problem space.
Maybe if user stylesheets didn't exist, you could say it isn't worth the effort to implement them, as javascript extensions are a "good enough" solution for a somewhat rare circumstance. But actually removing the existing, standardized, portable, feature seems a tad bizarre... [It's hard to believe it required much code.]
This is a great point. If a user went through the trouble of creating custom styles to make certain sites accessible, browsers should follow a standardized way of managing these styles. Just like a user can import their bookmarks when changing browsers, styles should be handled similarly.
It might be extra effort for browsers to handle this uncommon feature, but it is the right thing to do, especially for users facing accessibility issues.
Editor <=> File
is simpler than: Editor <=> Copy/Paste Text Box/Save Button <=> File
It's a more cumbersome feedback loop while making changes.Get the Chrome profile folder for your platform from: http://www.chromium.org/user-experience/user-data-directory (note, may not be "Default" if you use a created user profile.)
Get the extension number from chrome://extensions/
One thing that needs to be taken care of is updates-gone-rogue (a la HoverZoom, for example.)
There are dozens of extensions which change the new tab page - I didn't like any of them, so I hacked a quick one myself - it took me 2h? 1.5h? It was fast and I didn't need any complicated features - just a CSS-styled table with fixed list of links and a clock.
Here are some templates: https://github.com/bsilvereagle/Extensions
It's pretty straight foward in my opinion.
It's well-maintained and allows a user to inject custom CSS or JS on any URL, domain or all sites for their own tweaks and purposes. Maintaining these overrides just one click away offers a much better experience than hunting down this Custom.css buried within the filesystem.
Especially not Stylish. For example, I have a custom user style sheet which modifies the scrollbar so that it's high contrast. The current scrollbar contrasts very poorly and hard to see so it's a necessity.
When using the exact same CSS in Stylish, it breaks when going back/forward between pages all the time, rendering the default scrollbar instead. It's the same for every extension. I even wrote my own, it doesn't work.
Whoever decided to offload this capability onto extensions made a TERRIBLE decision.
* { cursor:auto !important }
a { cursor:pointer !important }
a * { cursor:pointer !important }
Another reason not to use Chrome beyond tree-style tabs.[1] Though I can't help feeling total arbitrariness when skipping from one first-level HN comment to the next.