Module Validation Checklist

What makes a module valid? Since we've been working on a validator for modules, we realized that we hadn't posted a human-readable list of what makes a module valid. There's the microformat profile, but it's not the easiest thing in the world to read or to figure out what's a child of what, and so forth. The module skeleton gives you a start.  When you've completed your code, run through this 10-point list of requirements for a "valid" module:

  1. The document must validate as XHTML 1.0 Transitional. You can use the AOL Module T validator to check both for validation against that spec, and our microformat. This requirement is relaxed for server-side modules, since namespaced attributes don't currently pass the W3C's validator. Your module must still be well-formed (meaning all tags are lowercase, all attributes are quoted and all attribute values are XML-escape).
  2. The document must contain a single element with a class of "module" (this will change when we support multiple modules).
  3. That element with the class of "module" must have an id, which is the module name.
  4. That module element must contain either an edit or view (this isn't in the validator currently - it's a warning), and can contain both.
  5. The module must contain an element with a class of "description," but not more than one.
  6. The module must contain a link with a rel attribute with the value of  "author."
  7. There must be an element with the class of  "version" inside the module somewhere.
  8. There must be a link in the module with the rel  attribute of  "license" pointing to the license for the module.
  9. There must be a link in the module with the rel attribute  of  "mail" linking to the e-mail address of the author, or a contact page.
  10. If you've set allow-multiple to "true," neither the module's edit nor view should contain elements with ids.