My approach is with features that they really should have had in the first place (eg HTML 4.01, CSS1 compliance), make no compromises - if they have an old browser, then they'll *see* that they need to upgrade. It's much easier to say "What? You can't see that? Oh yes, that's because your browser doesn't fully support HTML 4.0" than tell people that you don't want to support them.

As for features which they don't necessarily have to have - eg frames, javascript, images, embedded sounds, shockwave - I make sure there's always a valid fallback for compatibility reasons. For example:

And of course there are a handful of near-zero-impact workarounds for minor lack of capabilities, eg provide XHTML files as text/html and don't include any <?xml ?> type tags.

...all of which largely covers accessibility rather than compatibility. It's not too important that your project be compatible; it is critical that your project be accessible. On the same subject, see the W3Cs take on accessibility

Saying all that, I have in the past compromised on certain bugs in *current* browsers, eg MSIE6s mishandling of <button>, 'fixed' by on-the-fly conversion to an <input type='hidden'><input type='submit' onclick=''> pair. I really hate browser bugs.

In any case never, ever compromise on standards or you'll quickly find that others (browsers) aren't supporting you (your site) any more.


In reply to HTML accessibility by rjimlad
in thread OT: Web Design - Catering to Everyone by arashi

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.