I am still disappointed by Launchpad's page headers

I recently investigated some spurious errors running some locale tests. The tests failed because there was no page title, which may come from an obsolete pagetitles module, or from the view class. Reading the source code side tracked me for an hour and I cannot get it out of my head, so I think need to write about the immediate and root issues.

There is a mechanism to fall back to a form's label when the page title is not provided, but not every page is form. I can see in the rules that many pages really do require a property to provide the page's heading (The h1 element) and something to provide the first item in the page title. Bread crumbs are the reversed page title, so page_title is also the last bread crumb. This is bad because many views define one property to be identical to the other, eg page_title = label. I reported a bug last year about cases where we need to do this because I was informed it was not necessary. The code clearly states page_title is required. Only 3 lines are needed to avoid defining identical properties in view classes, fixing this issue would not fully satisfy me.

The Launchpad 3.0 header is still a root problem for page headings, bread crumbs, and page titles. When the heading and the last bread crumb are the same, redundant information makes the top of the page hard to read. It looks wrong. It really is wrong, but not according the Launchpad's header rules. In general, Launchpad should not generate redundant headings, or encourage engineers to create redundant headings.

We sometimes want the view's h1 heading to be different from the last bread crumb because it is not clear what is being edited. The problem is most clear when you are looking at deep pages where the context object is not the branded project/distro. For example: https://launchpad.net/ubuntu/maverick/+source/wsjt/+changelog

The heading cannot be "Change log" because seen under "Ubuntu", the user will pause as ask "what the ...?". We use a label to clarify the Change log is for a secondary context """Change logs for "wsjt" source package in Maverick""".

It may be possible to drop the either the page_title or label properties if the header was redesigned to show the immediate context before the action/view that the user is seeing. For example:

☯ Ubuntu {project} "wsjt" source package {context} Change log {view}

[Ubuntu : Maverick (10.10) : "wsjt" source package : Change log]{.small}

This suggestion is fatally flawed of course because it does not consider the Launchpad applications (bugs, code, ...)