Handling Page Headings/Titles/Names

There are multiple possibilities to handle the page name / page title / first h1 heading in a wiki engine.

MoinMoin changed the strategy with version 1.5.0, but some of the default content and some of the themes were not yet adjusted accordingly.

Terms used in this page

page name

the name used to store and wiki-link the document, e.g.: WhyWikiWorks

page url

typically derived from the page name for example: http://example.com/wiki/WhyWikiWorks

page title
the title of the document, e.g.: "Old News: Why Wiki Works!". Traditionally, the page title is the page name. Some wikis add spaces to page names in the title to make theme more readable.
  • This is not the html title element, although typically the html title element contains the page title. When automated tools process a page, they look for the page title. For example, when you submit a link to reddit.com, the page title is used as the default title.
  • The page title is typically displayed in html h1 element
  • This page has a page title of Handling Page Headings/Titles/Names as defined by the first h1 in the page content

heading
a multi-level element (h1..h6 in html) you use to describe what some (following) (sub)section of the document is about
navigation area
output generated by the theme to ease navigation for the user
content area
output generated from content the user typed into the document

Heading is explicitely stated in the page contents

This is the MoinMoin default with the "modern" theme since 1.5 (also done this way by Trac wiki engine).

The user puts a single = Why Wiki works! = heading in his content and this generates the top h1 heading. Whether this is the only h1 heading (and everything else is h2+) is the user's decision (it is content - your content!). You can also choose to not have any headings at all on your page, e.g. on the RecentChanges page, you might want to have as much space as possible for the rc table.

Advantages are:

Short Term Disadvantages are:

Long Term Disadvantages are:


I think making the change was a good design decision and will work well once everyone understands it and finishes the conversion work. However, the classic and modern themes should be reviewed as well. Making the fonts for the page names a tad smaller will improve the appearance. The large fonts seem to shout and compete with the h1 heading on properly designed pages.

First h1 heading is autocreated from the page name

This was the MoinMoin default up to v 1.5.0beta1 and of the original wikis like http://c2.com/cgi/wiki, http://mediawiki.org. Some of the wikis like mediawiki require explicit linking, which gives more "natural" page names, and some support additionally CamelCase linking, which allows to type less at the expense of the somewhat artificial page name.

Advantages:

Disadvantages:

Disadvantages avoided by proposal below:

First h1 heading is autocreated from page name plus alternative option

This is easy to implement in MoinMoin by using special pragma. I don't know other wikis that implement that. The behaviour is like "page name headings", but there is an option of stating a configurable heading in the metadata:

#pragma heading Guidelines for Theme Developers

This heading is not part of the contents but is a traditional auto-generated wiki navigation heading. Additionally the content author is given a means to set a heading which is different from the page name or to suppress the heading completely:

#pragma heading

Advantages:

Disadvantages:

Questions:

Accessibility considerations

From an accessibility's point of view - especially from a screenreader user's point of view - it would be nice, if html-element h1 headings would be reserved for hidden metastructuring of the whole wiki page (including content, editbar, navigation...). This means: in html-output (and only there) the html-formatter outputs wiki level one headings (=Blablabla..=) as html level two headings (<h2>Blablabla</h2>). Why this? Because most screenreaders do have special shortcut keys to jump quickly from heading to heading. If the whole wikipage-output would be structured like this, navigation would be super easy for screenreader users:

Something like this has been implemented in ThemeMarket/SimpleMente. Please note: these h1 headings metastructuring the whole page output need not be visible to normal users but only to screenreader user! Check out Simplemente for that: you have a nice theme that looks compelling (of course that's a matter of taste..). Now turn of >css< in your browser so that you can see how people "see" the theme using a screenreader. Compare Moderne theme and Simplemente with css turned off. Hidden h1 headings are a big step forward in accessibility. Simplemente even tried to reorganize the structure of a page so that the content appears as fist h1 heading. However doing this is a little bit shaky and does not work on older browsers.


Here is a simpler layout using accessible h1 elements:

The title can function as location bread-crumbs. Here is a nice example and another one (and from now on: also ThemeMarket/SimpleMente :) ).

This layout is also more search engine and text mode browser friendly, sending the content before the navigation. Components are positioned using CSS.

It is important to understand that you can not do such layout if you let the user use h1 element, as current moin does.

MoinMoin: PageHeading (last edited 2007-10-29 19:09:39 by localhost)