[linux-elitists] Take back the net! CSS for the user

Karsten M. Self kmself@ix.netcom.com
Fri Dec 7 19:00:12 PST 2001


on Fri, Dec 07, 2001 at 11:53:20PM -0000, Rusty Foster (rusty@kuro5hin.org) wrote:
> "Karsten M. Self" <kmself@ix.netcom.com> said:
> 
> > I'm working on a CSS that results in a largely readable, presentable,
> > workable Web experience for users, primarially of GNU/Linux, but ideally
> > of any platform.
> 
> Anti-elitist-PC statement of the day: I enjoy seeing what people
> designing web sites do with them. That is, I don't suffer the illusion
> that my idea of "looks good" is universally true for all sites all the
> time. 

I'm not trying to make the web look uniform from site A to Z.  I *am*
exercising my prerogative to READ THE FUCKING THING.  In too many cases,
the issue isn't one of "looks good / doesn't look good", but "readable /
unreadable".

The sinister side says:  this is about nothing less than the future of
the Web.  While I'm not sure the situations that dire, there's a
serious _usability_ issue at stake.  The problem being that with
overspecified page design, the site becomes one or more of:

  - Inaccessible to platforms other than its primary target.

  - Brittle:  any change to assumptions of viewport, screensize, font,
    point, etc., breaks the design.  This usually also implies the point
    above.

As a related tirade on the SVLUG list which in part inspired this little
crusade noted:  the medium is fundamentally malleable.  The user
determines presentation (aquiesence to defaults is merely one of several
possible user modes).  

Without this ability, it's quite possible to design sites which, shall
we say, slant the experience toward a specific platform, in subtle or
not so subtle ways.  The "why not GNU/Linux in 2002" excuse becomes "the
Web looks like crap".  Guess what.  You've got veto power over that one.

The problem is that it's *really* hard to find examples of CSS _aimed at
the user_.  A sampling of comments found from real, actual, live, CSS
design-oriented websites:

  - "Stylesheets give you lots of control..." 
    http://hotwired.lycos.com/webmonkey/authoring/stylesheets/tutorials/tutorial1.html

  - "CSS is a simple mechanism for controlling the style of a Web
    document..."
    http://hotwired.lycos.com/webmonkey/reference/stylesheet_guide/

  - "[CSS promised] more precise control than ever before over layout,
    fonts, colors, backgrounds, and other typographical effects"
    http://hotwired.lycos.com/webmonkey/98/15/index0a.html

  - "You can control layout like never before."
    http://hotwired.lycos.com/webmonkey/98/15/index0a_page2.html?tw=authoring


...note a rather consistent emphasis on control and power, to the
webdesigner.  Turns out that's only part of the story.

So I'm taking things into my own hands.  You want a user-oriented
stylesheet?  Come and get it:

    http://kmself.home.netcom.com/Download/userContent.css




The CSS2 specification provides for allowing the user to override page
preferences with the !important style tag:

    http://www.w3.org/TR/REC-CSS2/cascade.html#important-rules


    6.4.2 !important rules

    CSS attempts to create a balance of power between author and user
    style sheets.  By default, rules in an author's style sheet override
    those in a user's style sheet (see cascade rule 3).

    However, for balance, an "!important" declaration (the keywords "!"
    and "important" follow the declaration) takes precedence over a
    normal declaration.  Both author and user style sheets may contain
    "!important" declarations, and user "!important" rules override
    author "!important" rules. This CSS feature improves accessibility
    of documents by giving users with special requirements (large fonts,
    color combinations, etc.) control over presentation.

    Note. This is a semantic change since CSS1. In CSS1, author
    "!important" rules took precedence over user "!important" rules.

So, the user has a countermeasure tool.  Note that the CSS2 spec
*reversed* the situation from CSS1.  Previously, author overrode user
for *all* stylesheet specifications.  The best you could do as a user
was to set an !important flag and pray that you wouldn't run into a site
that overrode it.  The CSS2 (correctly) inverted the power balance.

The true statement about stylesheets is that they allow more precise
specification of presentation...which may or may not be acknowledged by
the user's client based on numerous issues, including (but not
restricted to) those  relating to that "cascading" portion of the name.
The "cascade" are the precedence rules which specify which part(s) of
the stylesheet are actually in effect at any given time.


My beefs with websites generally boil down to a small number of issues.
I wrote on this on January 2, 1999 at the old Infoworld Electric
archives, I won't change a word (though I allow a very limited set of
sites to set cookies):

    Date posted: Sat Jan 2 17:59:15 PST 1999
     My top browsing peeves:

    1. Anything that moves.

    2. Little itty bitty tiny fonts. Guess what? I set my preferences
       for comfortable viewing. Don't insult me, my intelligence, or my
       eyes.  What are you trying to do? Save paper? Hall of shame.  3.
       Big fonts.  Look, folks, "font" is a four letter word beginning
       with "F". Don't f___ up your website. Hall of shame.

    4. Gratuitous Java

    5. Gratuitous Javascript

    6. Plug-Ins. Period. No I don't want to download your fscking broken app.

    7. Image maps.

    8. Site registration. If cypherpunks/cypherpunks doesn't work, I'm
       outta there. Minimal exceptions. What the fsck do you think --
       that your piddling site is important enough for me to clutter my
       pin-sized brain with another fscking password?

    9. Gratuitous non-hypertext links -- Java, Javascript, etc. Guess
       what <a href= "foo"> was designed for? Y'know:
       http://my.coolsite.com/? Or try here (how'd I do that?).  10.
       Gratuitous quoted-in-text-but-not-hypertext URLs (hey guys,
       forums too -- if you're smart enough to find this place, you're
       smart enough to tag your own posts).

    11. Fixed-width screen displays. I view at 1024x768. Why drop me down
       to 640x480. What about the guy browsing on his Palm Pilot? The
       wrong and right ways to do it.

    12. Cookies. Look, people, I don't want to overflow my bit bucket --
       it's only got a limited capacity, right?

	   ln -s /dev/null cookies 

       ...no mess, no fuss, no apps, no denials. Reasonable
       cookie-trashing SW might be another option. Haven't tried
       junkbuster, I hate installing sh*t to get rid of sh*t....

    13. Web-based fora. Face it, SMTP was intended for long, high-volume
       discussions, not Web pages. I like Linux World's forums, for
       example.

    14. Restrictive firewalls. Work shuts me out of all ports but :80
       and :8080. Biggest gripes are no gopher (a number of very useful
       archives) and no NNTP (see above). This also opens your eyes to
       how much non :80 web traffic there is. As commercial sites
       realize that other commercial sites are being shut out, I expect
       some latitude on both sides of this issue. E-commerce's biggest
       promise for the next few years is business-to-business.

   15. Spam. Like I care anymore, but....

   16. Getting old. I used to not worry about this sh*t.


> Not that this makes your preference a bad thing. Just thought I'd kick
> in for the other side of the coin. I think it'd be a boring web if I
> decided to overrule everyone else's visual ideas.

Fair enough.  But there's a little bit of a problem.  List mode again, I
like lists:

  - Bad site design fucks up the experience for everyone.  If I'm going
    through the web, I don't want to sit there diddling with my zoom
    controls, and/or color settings, for every fucked up site I
    encounter.  While the bulk of my browsing is on a handful of sites,
    I'll hit several thousand in the course of a few months.  So I'm
    going to choose the easy solution and fix things more or less once.

  - I've been given my equalizer, but it's a blunt tool.  I've written
    the stylesheet to be relatively flexible (and want to make it more
    so), and I've coded some of the preferences without the !important
    tag (in particular, margins).  But there's only so much flexibility
    that can be accomplished.  User-side CSS isn't something which can
    be applied on a site-by-site basis, and some of the preferences
    (overriding explicit font sizing hints) are inflexible at best (no
    variance in font size at all).

  - There's a fundamental problem with font specifications and the
    Internet.  Fonts don't render uniformly.  They aren't uniformly
    available.  Common units of measure are inconsistent across fonts.
    Common units of measure are grossly inappropriate for the very fluid
    medium of electronic display -- but behold the majick power of em:

        http://style.cleverchimp.com/font_size/scale/

    ...and what's wrong with fonts sizing units:

        http://style.cleverchimp.com/font_size_intervals/altintervals.html

  - Most of the time I'm on the Internet, I'm not out to gape over slick
    page design, ** I'M READING FOR CONTENT **.

The general point is that old lesson from school, you know, where the
teacher gets up in front of the class and says "You know that it only
takes a couple of people to ruin things for all of you".  It's the
persistent, blatant, abuse of Web design elements that's forcing me to
do this.  And I'm finding that the results are pretty damned good.
Consistently.

Realize too that this is the reverse of having crap crammed down your
throat.  This is putting up an arm, blocking the crap, and tossing it
back at the idiot fuckwit webdweebs who're cranking out shit in the
first place.  Pardon my French...no, don't.  I'm sick of this crap, and
there's no reason to deal with it any more.

BTW, you know where the default sizing comes from?  In Mozilla (and by
extension, Galeon, Skipstone, and other Gecko-based browsers),
nsStyleUtil.cpp.  Bunch o' tables:


      {
	  { 9,    9,     9,     9,    11,    14,    18,    28 },
	  { 9,    9,     9,    10,    12,    15,    20,    31 },
	  { 9,    9,     9,    11,    13,    17,    22,    34 },
	  { 9,    9,    10,    12,    14,    18,    24,    37 },
	  { 9,    9,    10,    13,    16,    20,    26,    40 }, 
	  { 9,    9,    11,    14,    17,    21,    28,    42 },
	  { 9,   10,    12,    15,    17,    23,    30,    45 },
  **      { 9,   10,    13,    16,    18,    24,    32,    48 }   ** 
      };
    // HTML       1      2      3      4      5      6      7
    // CSS  xxs   xs     s      m      l     xl     xxl
    //                          |
    //                      user pref

Look at that starred line.  That's the one that determines what I'm
looking at, seeing as I've picked 16pt as my preferred font.  What's the
problem?  Well, at my configuration, 16 points is actually fairly small.
I find anything lower than 14 points uncomfortable, and have set my
minimum font preference at 14pt.  But...the *first* lower point size
listed in the table, for a "size='2'" or "size='-1'", is 13 points.
Painfully small in my browser.  Note that the problem actually gets
*worse* as you select larger fonts, BTW.  At a 9pt preference, smaller
font specifications *aren't smaller*.   At 12pt preference, the delta is
two points, relatively minor.  At 16pt, there's a three point delta.  In
percentage terms, 83.3% and 81.3%, respectively. 

Let's emphasize this:  absolute and relative font scaling specifications
are fundamentally broken.  This should be user-specified behavior.

Given the abuse of these scaling factors, I'd prefer to see the ±1
scalings made identical to the selected preference, the ±2 scaling made
no more than two points different, and the +3 scaling 4-5 points above
the default font.   Convey a bit of information, but don't risk page
legibility.

Translating the entire schema to ems would be a huge plus, then allowing
the user to specify an em-factor, this being the step-size scaling
factor.


> Galeon rocks, by the way. Once you've given your pound of flesh for
> the install, it is far and away the best Linux browser. Hands down,
> bar none, and all the other superlatives you can come up with. Better
> than Konq, even. If any of the rest of you aren't using it yet, run
> don't walk to your nearest download mirror.

Agreed with you here ;-)

Say, don't you have a set of servers to bring back online?

Peace.

-- 
Karsten M. Self <kmself@ix.netcom.com>       http://kmself.home.netcom.com/
 What part of "Gestalt" don't you understand?             Home of the brave
  http://gestalt-system.sourceforge.net/                   Land of the free
   Free Dmitry! Boycott Adobe! Repeal the DMCA! http://www.freesklyarov.org
Geek for Hire                     http://kmself.home.netcom.com/resume.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://allium.zgp.org/pipermail/linux-elitists/attachments/20011207/491f544c/attachment.pgp 


More information about the linux-elitists mailing list