March 22, 2009

Paving cowpaths

Now we have two brows­er-spe­cif­ic ways to style scroll­bars and man­gle acces­si­bil­i­ty. No doubt the imple­men­ta­tion of this was meant to rein in devel­op­ers using JavaScript to build fake scroll­bars using DIVs. My opin­ion: before it was rel­a­tive­ly dif­fi­cult to build cus­tom scroll­bars that ignore user pref­er­ences for size and colour, and now it’s eas­i­er. Here’s look­ing for­ward to pages with ::-webkit-scrollbar { width: 2px } .

The ram­i­fi­ca­tions of sep­a­rat­ing of con­tent and pre­sen­ta­tion still haven’t quite sunk in yet to this devel­op­er group. Do what­ev­er you want in the con­tent area of the page (obvi­ous­ly pay­ing atten­tion to usability/accessibility), but stay away from over­rid­ing OS-lev­el con­cepts. Scroll­bars are not in your domain, nor are modal dia­log box­es or right-click menus.


For me this bleeds into appli­ca­tions-in-the-brows­er, of which I have an opin­ion as well: in the ear­ly days it was like push­ing a cart with square wheels; now the cart’s a Fer­rari and the wheels are pen­tagons. The brows­er isn’t suit­ed to what you’re doing, and the only rea­son you want to run there is thin-client ubiq­ui­ty and ease of dis­cov­ery. Fea­tures that don’t belong in a brows­er (Web Sock­ets, Serv­er-side events, Per­sis­tent Work­ers omg wtf need more tray icons) are being shoe­horned in to sat­is­fy require­ments already ful­filled by the OS when real­ly you should be pimp­ing your grander wish­es for OS-lev­el vir­tu­alised thin-client tech to the OS com­pa­nies instead.

Browsers should not need a task man­ag­er, per­sis­tent threads, local data­base stor­age or the abil­i­ty to open arbi­trary ports.

In some ways I empathise with the intent of the XHTML2 WG to recre­ate the lan­guage as a doc­u­ment for­mat, not some bas­tardised ‘this does­n’t fit our appli­ca­tion par­a­digm so let’s rede­fine its semat­ics’ approach that app-in-brows­er devel­op­ers have cap­i­talised on. Maybe we should­n’t have intro­duced DIV but made CSS capa­ble of group­ing arbi­trary sequen­tial ele­ments instead (that’d still be nice btw; ‘ul#blah ~ ul#argh { background:blue }’ anyone?).

Edit: updat­ed incor­rect word, added empha­sis, clar­i­fied statement.

posted by Andrew

2 thoughts on “Paving cowpaths

  1. Pingback: Dave
  2. Andrew says:

    Self taught since ’95 when things were a lot sim­pler :) I remem­ber sit­ting on my best friend’s bed­room floor read­ing an arti­cle about the new <table> tag and writ­ing on paper the code for a new table layout.

Leave a Reply

Your email address will not be published. Required fields are marked *