Hi there, design team! :)
Back at DrupalCon Chicago, Dries outlined a strategy for Drupal 8 involving a series of "gates" that would help ensure core code quality in a number of different categories: Documentation, Performance, Accessibility, Usability, and Testing. The purpose of gates is to define essentially a set of "checkboxes" which outline the most important aspects to each category, and does so in a way that is both not overwhelming to core developers (list of hoops to jump through is kept as small as possible) and also creates very little additional burden on the team in question (contains sample links to documentation/resources so developers/reviewers can help themselves).
While markup was not on the "official" list, several people pointed out that there would be a lot of value in defining a checklist for markup, too. I totally agree. So let's doo eet!
Since we have already traditionally had requirements around documentation, it made sense to start there. Jennifer Hodgdon and some other folks from the documentation team have put together the Documentation gate, which is available at http://drupal.org/node/1203498. What we need is a similar table for each of the other gate areas. And that's where you come in! :D
So I'd love to kick off a brain-storm about what the top gates might be (please, no more than 5 if possible), with the goal being to fill out the following table. (This is a wiki page, so be bold!)
|Description||When is this needed?||Details||Resources|
|Always use a semantic element unless there isn't one available and don't use more markup than necessary.||Always||
|Don't over-specify CSS or use ID's as selectors.||Modules||CSS code that resides in modules should be written in a way that's easily overridable.|
|Put CSS in the proper file.||Modules||
|Start with Stark and cross-browser test.||Modules||
|Use existing theme functions.||Always||Get familiar with the existing theme function, such as theme_mark(), theme_more_link(), theme_date(), theme_container(), etc. Reuse them wherever possible.||Default theme implementations|