1. Web Standards

    Edward O'Connor

  2. Happy Talk Like a Pirate Day!

    Pirate Monkey Is On the Phone
  3. What are web standards?

    • First things first — what is the web?

     

    The Web isn't a platform or a database or an API or… any other of those things. In fact, the Web isn't even a thing, it's a mesh of agreements with a nice straightforward engineering rulebook.

    Tim Bray, 5 June 2006


  4.  

    • Web standards just are the agreements that make up the mesh that is the web.
    • Broader definition than the norm
      • arguably includes lower-level Internet standards like TCP/IP
    • Still, some things are clearly not standards
      • behavior of some particular browser not an agreement
  5. Standards organizations

    • IETF — Internet Engineering Task Force
    • W3C — World Wide Web Consortium
    • Ecma International
    • Unicode Consortium
    • robotstxt.org (or rather, the robots mailing list)
    • WHATWG — Web Hypertext Application Technology Working Group
    • microformats.org
  6. Standards in markup

    • Archaic HTML — TimBL @ CERN
    • HTML < 3.2 — the IETF's HTML WG
    • HTML 3.2, 4.0, and 4.01 — the W3C's HTML WG
    • XML — W3C's XML WG
    • XHTML 1.0, 1.1, 2.0 — W3C's HTML WG
    • Web Applications 1.0, AKA (X)HTML 5 — WHATWG
    • microformats — microformats.org
  7. Styling, scripting, and more

  8. Other web standards

  9. So much for what they are…

  10. Why should we use web standards?

    • From Roger Johansson's ten reasons to learn and use web standards:
      1. Make yourself look professional
      2. Make your clients look good
      3. Maximise the number of potential visitors
      4. Faster loading and reduced bandwidth usage
      5. Provide the foundation for accessibility
      6. Improve search engine rankings
      7. Make your markup easier to maintain
      8. Future-proof content
  11. How to use web standards

    • Tons of great resources out there
    • Validation is only the beginning
      • valid ≠ conforming
      • valid ≠ accessible
      • valid ≠ usable
      • "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" is a valid English sentence, yet…
  12. Using web standards together

    • Separation of concerns: use each standard for its specific purpose
      • (X)HTML for structure
        • (X)HTML has many elements with semantic import, e.g., use <hN>…</hN> instead of <div class="header">…</div>
      • CSS for presentation
        • N.B. @class is structural, not presentational
      • DOM scripting for behavior
    • Fully exploit each standard before hacking around shortcomings
      • e.g., XHTML compounds before microformats
      • <ol class="chat-log">
          <li><cite>Patrick</cite>: <q>Dude, I've got to
          go back East; can you cover for me at Refresh?</q></li>
          <li><cite>Ted</cite>: <q>Sure!</q></li>
        </ol>
  13. How not to use web standards

  14. How to help make web standards

    • Know the organizations
      • Each org has own rules, IP policies, procedures, members, agendas…
    • Example: how is membership determined?
      • W3C, Ecma, and Unicode Consortium have only corporate members (and Invited Experts)
      • IETF has only individual members
      • WHATWG membership is by invitation only (but non-member contributors welcome)
    • Example: incremental change v. radical change
      • XHTML 2 (W3C) is a major departure from previous versions of (X)HTML
      • (X)HTML 5 (WHATWG) is an incremental (but substantial) update to HTML 4 and XHTML 1.0
  15. Discussion

    • How to use / how not to use web standards
    • When to use / when not to use web standards
    • Best practices
    • Refactoring legacy code to use web standards
    • Design issues in using web standards
    • Typography
    • How are sausages web standards made
      • procedural differences between standards bodies
      • controversy, forking, and divisiveness
      • genesis of WHATWG, microformats.org
    • In the trenches: adopting web standards at work
      • How to sell bosses, clients, designers, and developers on it
  16. C'est ça!