TemplateOptimization

Templates conversion summary and notes

Created by: Anonymous, Last modification: 09 Jul 2007 (08:28 UTC) by xing

DOCTYPE

the current DOCTYPE of bitweaver is XHTML 1.0 Transitional, however there are only few changes required until we are XHTML 1.0 Strict. Conversion should therefore be quite straight forward and should happen quite soon.

Compliancy

we are working hard on getting bitweaver absolutely W3C standards compliant including WCAG specifications - including priority 1 and as many of the other priorities as possible.

Generally speaking all templates are completely XHMTL 1.0 Strict compliant. Once in a while someone makes a sloppy commit and a minor error or warning might show up when validated on w3c, but these are exceptions.

If you validate your site against w3c and you find errors, chances are that these are part of the content you have entered. Please make sure that your content is free of errors before reporting XHMTL compliance issues.

Requirements

W3C XHTML 1.0 Strict

  • target="_blank" has to be removed entirely - also a requirement for WCAG.
  • several fixes of templates thoughout. updating of forms is required as well ( ... --> {forminput}...{/forminput} will give us more control over forms ).

WCAG A, AA, AAA

some priority 1 example requirements (from http://www.w3.org/TR/WAI-WEBCONTENT/)

5.1 For data tables, identify row and column headers. Priority 1
For example, in HTML, use TD to identify data cells and TH to identify headers.

5.2 For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells. Priority 1
For example, in HTML, use THEAD, TFOOT, and TBODY to group rows, COL and COLGROUP to group columns, and the "axis", "scope", and "headers" attributes, to describe more complex relationships among data.

6.1 Organize documents so they may be read without style sheets. For example, when an HTML document is rendered without associated style sheets, it must still be possible to read the document. Priority 1
When content is organized logically, it will be rendered in a meaningful order when style sheets are turned off or not supported.

6.2 Ensure that equivalents for dynamic content are updated when the dynamic content changes. Priority 1

6.3 Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page. Priority 1
For example, ensure that links that trigger scripts work when scripts are turned off or not supported (e.g., do not use "javascript:" as the link target). If it is not possible to make the page usable without scripts, provide a text equivalent with the NOSCRIPT element, or use a server-side script instead of a client-side script, or provide an alternative accessible page as per checkpoint 11.4. Refer also to guideline 1.

if you look at point 6.3, it means that the current hide and show system tp uses for the collapsible menu are not allowed, unless we provide an alternative. this is quite evident as it's impossible to navigate tp using the collapsible menus when js is turned off. luckily we are moving away from this, but there's still a lot to be done.

one other specification in XHTML 1.0 strict is, that there be no more 'target=' elements. that means that popups can only be created using javascript. however WCAG says that popups shouldn't be used at all unless absolutely required and the user is 'warned' that there is a popup. personally, i think the best method to circumvent this, is to apply a class to external links and display them differently using css. an example of this behaviour can be seen in the cvs installer, which is completely xhtml 1.0 strict and at leaset WCAG AA compliant. links that take you away from the installer pages, are marked by a small arrow.

Tables

Templates in bitweaver have undergone a major change since the beginning. most noticeably, we hardly use any tables anymore - only where absolutely needed.

the only place where tables are used, is to display large amounts of data where columns are of the essence such as a listing of wikipages - elimination of tables isn't complete yet, but well underway.

due to the WCAG specifications, tables that are used, will have to carry a lot more information than they already do, including 'summary' 'headers' or 'scope' (see above).

Lists

listings of certain types use
  • or
  1. giving the styler absolute freedom on how they want to display the list using css.

    one other WCAG requirement is that links are not allowed to follow one another without space or other sort of separation. we will therefore change the navigation bar, that appears at the bottom of some pages into a
  • list of items. that will also allow users to create a dropdown for these items, making navigation easier and nicer.