Page MenuHomePhabricator

[timebox 4h] Research implementation for lemma h1
Closed, ResolvedPublic0 Estimated Story Points

Description

Research task for T196228 (and T197929)

Lexeme lemmas should be used as the lexeme page title. h1 should be used to mark-up the page title. In Valid HTML mark-up an h1 tag can only contain "phrasing content".

AC

  • reasearch way to mark-up lexeme lemmas (in read mode) in a valid way to which styles can be applied to achieve current UI
  • mend T196228 according to findings

Event Timeline

Pablo-WMDE renamed this task from [timebox 4h] Research alternatives for lemma h1 to [timebox 4h] Research implementation for lemma h1.Jul 9 2018, 9:22 AM
Jakob_WMDE set the point value for this task to 0.Jul 10 2018, 1:07 PM

Status quo in production: w3c check

Bildschirmfoto von 2018-08-30 16-12-06.png (965×1 px, 130 KB)

Bildschirmfoto von 2018-08-30 16-12-17.png (965×1 px, 143 KB)

  • redundant h1s
    • default mediawiki one (#firstHeading) (not visible)
    • lexeme custom one
  • default mediawiki h1 gets filled with custom content by LexemeView::getTitleHtml() only for it to be hidden by CSS
    • makes the assumption that there is "main term" (which was dimissed in other places) and prints only the "first" lemma
    • fails to mark-up the lemma in it's correct language (surrounding mark-up is uselang)
    • has LexemeView has FallbackHintHtmlTermRenderer injected exclusively for rendering this (one) lemma but this
      • does not make sense as this class is dedicated to showing content in user language or falling back to a default one (like for items) - a scenario not applicable to the lexeme domain
      • fails to pass a TermFallback (instead of plain Term) to FallbackHintHtmlTermRenderer - consequently it never reaches its potential (i.e. fails to mark-up term with language).
      • tries to spell out languages for the language code but fails to do so for some valid lexeme lemma languages (e.g. en-x-Q123)
  • lexeme custom h1 contains block level elements (= T196228)

Change 456406 had a related patch set uploaded (by Pablo Grass (WMDE); owner: Pablo Grass (WMDE)):
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: valid HTML for lexeme header

https://gerrit.wikimedia.org/r/456406

Change 456571 had a related patch set uploaded (by Pablo Grass (WMDE); owner: Pablo Grass (WMDE)):
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: no h1 for lexeme header

https://gerrit.wikimedia.org/r/456571

Preface:
I am a strong proponent of semantic mark-up.
The suggestion is influenced, amongst others, by the following realities:

  • we are using a framework that provides a standardized spot to render a page title
  • we have a possible UI overhaul coming our way in the near future where things we actively decide to postpone now could make their way into the list of requirements
  • the violating component in question is a micro application (granted, maybe doing one too many things) in itself. Limiting its template to "phrasing content" will restrain our flexibility and not necessarily improve mark-up (which was the overall prospect of the ticket)

Suggestions (updated T196228 accordingly):

  • render all lexeme lemmas into the (hidden) default mediawiki h1, like it is done for the anchor text of LexemeIdHtmlFormatter
  • make #wb-lexeme-header-lemmas use a semantically less charged tag (e.g. div instead of h1) -> https://gerrit.wikimedia.org/r/456571

Risks:

  • no h1 content will participate in client-side editing, will only update on server-side reload -> brief inconsistency
    • already the case for the "main term" in the default mediawiki h1
    • current custom h1 is marked-up so poorly that it can hardly be considered that
    • should have very limited effect on usability of the page (the outdated content is display: none)

Change 456406 merged by jenkins-bot:
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: centralize lexeme header building

https://gerrit.wikimedia.org/r/456406

Change 456571 merged by jenkins-bot:
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: no h1 for lexeme header

https://gerrit.wikimedia.org/r/456571

Change 458493 had a related patch set uploaded (by Pablo Grass (WMDE); owner: Pablo Grass (WMDE)):
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: no h1 for lexeme header

https://gerrit.wikimedia.org/r/458493

Change 458493 merged by jenkins-bot:
[mediawiki/extensions/WikibaseLexeme@master] LexemeView: no h1 for lexeme header

https://gerrit.wikimedia.org/r/458493