The 21st Anniversary Edition

Updated January 11, 2004
(see footnotes for changes)

1/11/2022: This page is about Version 10 of The Oo Kingdom. For history purposes, only the first part (What’s New at a Glance) and the sixth part (Broken Scripts Repaired or Eliminated) matter; the rest of the page is just a lot of technical stuff. After this page, site history resumes here.


Wendi and I (Charlie) celebrated our 21st wedding anniversary on October 16, 2003. The latest edition of this site went online one day earlier, on October 15.


What’s New at a Glance

Changes, Changes…

  1. Joe’s satellite sites were removed to a separate new top-level domain, joesportal.com, which opened September 22. (NOTE, November 8, 2007: Joe’s site was discontinued last month.)

  2. Ummamum’s Surprise is now in its own folder; each presentation appears on a separate page. Legacy browsers (Netscape 3 or higher) will play the sound clips within the browser; the latest browsers (Netscape 6/7 and Mozilla) will open the files in the visitor’s default media player. The cover page and 26 sub-pages made their debut with the new edition of the site on October 15.

  3. A page of Conversion Factors and Formulas was added to Metric Conversions, Etc. on September 11 for the benefit of non-JavaScript users (and anyone else who wants to use it).

  4. Computer Art by Victor Petitt (in Ummamum’s Picture Place) now includes a long description page which gives detailed descriptions of each picture. There are links to and from each picture page plus a link to the description page from the section cover page. In addition, the longdesc attribute in the <img> tag provides additional access for JAWS users (and anyone else whose browser supports the attribute). The new page went online September 29.

  5. Directories in the News Archive and Ummamum’s Picture Place have been restructured. A few old picture sections were removed September 22, citing privacy concerns.

  6. Our markup (XHTML) is now served with the MIME type application/xhtml+xml to browsers which accept it. Other browsers, including Internet Explorer 6 for Windows, will be served text/html as before. Ummamum’s Picture Place was first to receive this upgrade, on September 24; Petitt’s Creations followed three days later. The primary domain had to wait until October 15.

  7. New modular layout was achieved without nesting div elements[1] or using a box model hack. Layout uses relative sizes but will not break when the window or the text is resized; it also renders identically in either quirks mode or standards-compliant mode.

  8. A new global JavaScript provides a special style sheet for Netscape 4[2], defines the function for the email link and brings in the special script for Internet Explorer (see below).

    That script makes the q element work on Internet Explorer 5 and 6. There are now no manual quotation marks on The Oo Kingdom. If scripting is disabled, IE will display quoted material as italicized text. (The script and q tags were removed in favor of manual quotation marks in Version 10.6.)

    abbr and acronym elements containing title attributes get a dotted underline and a question mark cursor on hover. This also works on IE, thanks to the same script.

  9. New Access Keys (keyboard shortcuts).

  10. Phrase elements were added where they apply: cite, dfn, code, samp, kbd, abbr, and acronym (em and strong were already in use)

  11. Gone are the Home page greeting, Oo’s Almanac and the customizable layout, colors and fonts.[3] These were considered trade-offs for the new features.

  12. Links to other sites are highlighted in a pale silver[4] on all browsers which support style sheets.

    Several small button links have been replaced by text links. Validator links now only appear on cover pages.

    Many link elements in document heads have been eliminated; only the more useful ones (Home, Up, Previous, Next) have been retained. First and Last links are used in Ummamum’s Picture Place.

Browser Compatibility Issues

What works and what doesn’t

Netscape 7 & Mozilla Firebird
Everything works as designed.
Opera 7
Horizontal rules are missing on printouts; layout of printed pages may be wrong in some cases.[5]
Opera 6
“Help” cursor does not work on abbr and acronym elements.
Internet Explorer 5.5 & 6
Everything works as designed; a float problem on the Family page appears to be fixed. The browser does not support the q or abbr elements, but alternatives are provided via client-side scripting. The script may delay page loading or cause the screen to flicker. (The script and q tags were removed in favor of manual quotation marks in Version 10.6.)
Internet Explorer 5
If italicized text runs across parts of two or more lines, a horizontal scrollbar will appear at the bottom of the page (only version 5 is affected by this bug). Also, the dotted underlines will not appear below abbreviations or acronyms, but the help cursor is displayed on hover. Everything else is the same as in later versions of Internet Explorer.
Internet Explorer 4[6]
Same as Internet Explorer 5, except that page headers (which contain the title or logo) appear with the same background color as the rest of the page content (better browsers get a separate background color on most themes).
Netscape 4.0 through 4.8
Netscape 2 & 3

DOCTYPEs in Use

MIME Types Served to Different Browsers

At the time of this writing, only current Netscape and Mozilla browsers receive our pages as application/xhtml+xml which is the recommended MIME type for XHTML. All other browsers are served text/html

Serving Documents as application/xhtml+xml is Very Touchy

On September 15, 2003 at 6:48 a.m. I accidentally tried opening a normal HTML page served as application/xhtml+xml, on Mozilla Firebird. This is what I saw on my screen:

XML Parsing Error: mismatched tag. Expected: </link>.
Location: http://www.ookingdom.com/
Line Number 14, Column 3:

</head>
--^

Because there was no closing slash in the first link element it found, it returned a parsing error instead of displaying the page at all. Let the author beware of missing closing tags in XML!

Broken Scripts Repaired or Eliminated

Scripting works differently in an XML environment than it does in normal HTML. Tried-and-true methods like document.write don’t work in XML. I had to fix some of my scripts to get them to work in the new format; others I determined were really unnecessary, so I eliminated them.

Tables Render Funny in XML

Our border and cellpadding attributes are now ignored by good browsers. Solved by styling table, th and td in the style sheet; I still define cellspacing="0" in the XHTML. Completed October 1.

XML Declaration is Now Used

We now use the XML declaration (also known as a prologue) at the top of each page’s source, even knowing that Netscape 2 and 3 will display it as text, and it causes IE 6 (Windows) to render our pages in quirks mode instead of standards-compliant mode. The problem with IE is really no big deal in our case; the site is designed to render identically in either mode. Our primary reason for using the XML declaration comes from the W3C specification for strictly conforming documents, as quoted below:

An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol. Here is an example of an XHTML document. In this example, the XML declaration is included.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.org</a>.</p>
  </body>
</html>

In case some browsers do not support the UTF-8 or UTF-16 character encodings, we use the more common Western European (ISO-8859-1) encoding instead. Our server will not deliver a character encoding at the protocol level, unless the MIME type in use is a subset of XML; legacy browsers will receive our pages as text/html with no character encoding unless it’s defined in the document.

Traditionally, we have used the <meta http-equiv…> tag to specify both the MIME type (content-type) and the character encoding (charset) for our documents. Because different MIME types are now being served to different browsers, our meta statement would be incorrect in some cases. Anne van Kesteren makes the point that the meta http-equiv statement should not be used for XHTML because user agents (browsers) do not read it; they get the MIME type from the server, and the character encoding is better defined in the XML declaration.

My Reason For Doing This[11]

Evan Goer’s fourth test

Evan Goer has a Web page entitled The X-Philes on which there is a list of sites that are valid XHTML and are served as application/xhtml+xml to conforming browsers. This site, added October 17, 2003, is listed as #41.

In his article, Mr. Goer describes three tests used to determine who is doing XHTML right and who isn’t:

  1. The Simple Validation Test: Check the home page of the site (or the one most often linked to) to see if it’s valid XHTML.
  2. The Laziness Test: Check three random secondary pages to see if they validate also. This eliminates those who build a valid home page and then slap a DOCTYPE on the others, valid or not.
  3. The MIME Type Test: Using Mozilla Firebird or equivalent, check “Page Info” and see if the type is application/xhtml+xml. This is where most fail the test.

He mentions a fourth test, not as concrete as the others: “Why are you using XHTML in the first place?” I will go the extra mile and attempt to address that here.

Admittedly, one reason I had for going to this extreme with a site this large and diverse, was to see if I could actually do it. But my primary reason (and what provided the real motivation) for converting to XHTML served as XML is longevity. I want to archive my content for a long time, and it needs to be both as forward compatible (for the future) and as backward compatible (for older browsers still in current use) as possible. HTML affords backward compatibility, but XHTML, carefully written and properly served, may provide both.

This is how I figure it: XHTML carefully written to be backward compatible, will be parsed by legacy browsers as HTML, which is fine. The name attribute is faithfully used for all link targets so Netscape 4 and similar classic browsers can find them. Documents are structured logically so they still make perfect sense when linearized (which is how they will render on older browsers). Newer browsers will read my XHTML as XML and will process it accordingly. Full styling is available to all modern browsers.

The next step for the Web (or so hopes the W3C) will be XHTML 2, which is not intended to be backward compatible at all. Jeffrey Zeldman doesn’t believe that XHTML 2 will ever gain popular support because it differs so radically from the HTML we all know and love; also, it may be too difficult for humans to edit as they do HTML today. If that be the case, HTML as we know it may never die, and this conversion will have been pointless—but our markup will still be supported and the site should still be usable.

If, on the other hand, XML becomes standard fare for the Web (as it already is for programming), The Oo Kingdom will be ready. Sites written in HTML may not be.

In either case, the markup on this site should not become obsolete for a very long time. This suits me fine, since I don’t relish the thought of another major edit any time soon.


Footnotes

A number of changes took place shortly after the 21st Anniversary Edition was introduced. Later site improvements are detailed on our Final Edit page.

[1] The header div was nested inside the content div, effective with Version 10.2 (November 10, 2003).

[2] Styling for Internet Explorer 4, the Presentation Themes, style tweaks for Internet Explorer 5 and Opera 7, and the fixed-position navigation bar for best browsers, are now also brought in by the global JavaScript.

[3] The Home page greeting has returned (more at [9]), and the new Presentation Themes have replaced the earlier custom settings.

[4] External link highlight color varies with the Presentation Theme in use.

[5] Layout problem on Opera 7 has been fixed.

[6] Internet Explorer 4 was not included in the original version of this page.

[7] Revised styling for dfn elements makes them appear in bold small-caps on modern browsers.

[8] Entire domain is now in XHTML 1.0 Strict, effective with Version 10.1 (November 5, 2003).

[9] A simplified Home page greeting is now online, preceded by a UTC time stamp.

[10] We decided that it wasn’t a good idea for someone visiting the site for the first time, to see a sleeping, snoring Ummamum instead of the normal one.

[11] More reasons for writing the site in XHTML are given at the bottom of the page entitled Or Not! and on Final Edit.