Tuesday, June 07, 2005

Shiny epaulets.

After careful lobbying on my part, I have been reclassed from Library Specialist to Applications Systems Analyst. The former is a general description which could apply to virtually any clerical/paraprofessional in the building, and in five years I haven't learned dick about librarianship or for that matter worked close to librarians outside of the web development team. As one of my co-workers introduced me to a new hire and tried to explain to her what I did compared to what Brian does, I said, "Brian writes the music, I create the instruments we play it on." Seems pretty accurate to me. After several years doing graphic design, I'm continually surprised with Brian's aptitude with no formal experience or training.

And yes, it comes with a raise, which is good since Ruth plans to stay at home with Maryalee this year. In late 2002, we moved out of the apartment into a house, and this spring we refinanced. No mean feat; my piss turned to ice when I read this week that over 1 in every 3 Arizona mortgages are now interest-only (in 2000 that figure was closer to 1 in 100). FWIW there are apartments in Flagstaff whose rent is higher than our refi'd mortgage payment. It's obscene. Literally, morally obscene.

My duties won't really be changing; what I've been doing for the last few years has fit the new job description better, and it's not arrogant to ask for formal recognition. As in previous jobs, I've piloted innovations and improvements in this position which have benefited everyone and made less work for us down the road. I am fortunate to work with people who appreciate it; I know people who have improved their skills only in spite of being treated badly at work, but they only do so with an eye on their next job elsewhere. Tacked on the corkboard behind my monitor at work is a worn, folded, hand-told half sheet of LaserWriter paper from 1992, handed to me with a job offer for a graphic designer/resume writer position (mentioned in this blog's first entry). 13 years later, I keep that printout as a pointed reminder; in good times it reminds me of how far I've gone. In bad times it reminds me how much tougher things were at one point, and that I survived.

Web standards have come a long way since I started working at Cline Library, and I've striven to adhere to them and maintain browser compatibility, when management would have let me get away with coding the site for IE, with table-based layouts and JavaScript widgets everywhere. Paradoxically as I continue doing my work better, the result gets more and more invisible to the end user. Random content like images used to be hand-coded JavaScripts inlined on the pages, then was refined and externalized and finally replaced altogether with server-side includes harvesting Perl CGIs. Even image-based rollover links are now possible with CSS rather than JavaScript, due to a technique I haven't yet seen elsewhere. The programming component of the job is still there, but it's become a lot subtler.

A current (and ongoing) frustration is with accessibility. My chief motivation for abandoning table based layouts is the amount of extra work it takes to make a complex table layout render in a logical fashion by screen readers. Check out our website in a screen reader or Lynx or a web phone -- it just works. To CSS unaware browsers, the content renders first and the navigation last. It's a common solution now; it wasn't when I suggested it to CSS-discuss 3 years ago.

And yet, screen readers are still hideously primitive. JAWS still refuses to honor the only HTML tag specifically aimed at it, to prevent it from importing screen-only stylesheets, and limits you to using IE. Apple's VoiceOver only works with Safari, and gives every impression of being rushed to market. Opera's reader doesn't automatically read pages when they load, and Opera's designers sincerely believe we're going to return to designing separate XML-based pages requiring a different extension and MIMEtype, only to serve one browser for one platform. All three largely ignore label tags when encountering forms. Despite the label tag being designed as a wrapper for form elements, WAI insists on labels being outside those elements and declared with FOR=ID, and prebuilt sample text in all fields.

The simpler we try to make things for ourselves, the more complex they get. A simple CSS pseudo-selector, :hover, which by W3C spec should be available to all elements, is only available to A links in IE. This limitation is what's kept CSS/unordered list-only dropdown menus off web pages for the last 3 years. A German developer discovered an elegant HTC-based solution which essentially rewrites IE's own handler code to behave according to spec. No alteration of your existing CSS, except for a line of non-spec code all non-IE browsers will ignore.

But if the stylesheet loading the behavior is on a different server than the page requiring it, IE refuses to load the behavior for security reasons -- even though both servers are within the same domain and Microsoft's own documentation is clear that the security restriction is supposed to only apply between domains. After some guessing I found a line of JavaScript which relaxes this restriction.

My predecessor was three times the graphic designer I am. But I think faced with the same problem, he would have stuck with a 3 year old, accessibility unfriendly, 30K noncacheable DHTML solution.

We're doing a retread of the site soon. It won't have the same technical hurdle the prior retread had; abandoning tables, developing CSS layouts, migrating boilerplate to SSI includes... But it refines the prior commitment to CSS and accessibility, with a more hierarchical, centralized and flexible stylesheet, and exploits fluid layouts not possible with IE 5.0 (the leading version during the prior retread). All visible telephone and fax numbers are silently becoming tel: and fax: links, restyled for screen browsers to look like plain text. Anyone browsing with phones now will see the links; selecting them will dial the numbers. We're also making some tougher decisions about graceful degradation across all browsers as Netscape 4 becomes a distant memory and IE 5.0 is nearly unheard of; I detest CSS hacks and those which exploit parser bugs especially. Older online exhibits for Special Collections and Archives are being duplicated and the offline versions converted to CSS and checked against the originals.