March 22, 2009
Paving cowpaths
Now we have two browser-specific ways to style scrollbars and mangle accessibility. No doubt the implementation of this was meant to rein in developers using JavaScript to build fake scrollbars using DIVs. My opinion: before it was relatively difficult to build custom scrollbars that ignore user preferences for size and colour, and now it’s easier. Here’s looking forward to pages with ::-webkit-scrollbar { width: 2px }
.
The ramifications of separating of content and presentation still haven’t quite sunk in yet to this developer group. Do whatever you want in the content area of the page (obviously paying attention to usability/accessibility), but stay away from overriding OS-level concepts. Scrollbars are not in your domain, nor are modal dialog boxes or right-click menus.
Aside:
For me this bleeds into applications-in-the-browser, of which I have an opinion as well: in the early days it was like pushing a cart with square wheels; now the cart’s a Ferrari and the wheels are pentagons. The browser isn’t suited to what you’re doing, and the only reason you want to run there is thin-client ubiquity and ease of discovery. Features that don’t belong in a browser (Web Sockets, Server-side events, Persistent Workers omg wtf need more tray icons) are being shoehorned in to satisfy requirements already fulfilled by the OS when really you should be pimping your grander wishes for OS-level virtualised thin-client tech to the OS companies instead.
Browsers should not need a task manager, persistent threads, local database storage or the ability to open arbitrary ports.
In some ways I empathise with the intent of the XHTML2 WG to recreate the language as a document format, not some bastardised ‘this doesn’t fit our application paradigm so let’s redefine its sematics’ approach that app-in-browser developers have capitalised on. Maybe we shouldn’t have introduced DIV but made CSS capable of grouping arbitrary sequential elements instead (that’d still be nice btw; ‘ul#blah ~ ul#argh { background:blue }’ anyone?).
Edit: updated incorrect word, added emphasis, clarified statement.
Self taught since ’95 when things were a lot simpler :) I remember sitting on my best friend’s bedroom floor reading an article about the new <table> tag and writing on paper the code for a new table layout.