Commit graph

7 commits

Author SHA1 Message Date
Thiemo Kreuz 4d03f8f17f Split overly long highlighting code into functions
Change-Id: I055c21ee2202afea4751dd74fa389c55fdd30acf
2018-11-30 15:03:02 +01:00
Thiemo Kreuz 9ce4b959bc Get rid of one nesting level in highlighting code
The code before was not wrong, just deeply nested. The worst case was
that the final $upArrowLink.attr( … ) might have been called on zero
elements. jQuery is fine with this.

Change-Id: I62e7286c7fe906544fe148e1122c60cc8db070f3
2018-11-30 14:49:27 +01:00
Thiemo Kreuz 4152c6cdf4 Make backlink highlighting robust when "mw-cite-backlink" is missing
The class="mw-cite-backlink" is part of a message. It should be
considered code and not be customized, but can be. Frwiki for example
localized it.

The new code still hopes to find the class, and still hopes the first
child is the text node containing the plain text up arrow. (See the
message "cite_references_link_many" which contains all this.) This code
path is kept because it is more performant.

If the class is not found, the upwards traversal done via .closest()
stops at the <li>. It then traverses down into the firstChild nodes,
hoping to find the plain text up arrow this way.

This patch makes the code work with the customizations found in frwiki.

Bug: T205270
Bug: T210508
Change-Id: I32552ebe820ee12aea1a75aa17af11298dc7536a
2018-11-28 12:35:05 +01:00
Thiemo Kreuz d7c1943b04 Make backlink highlighting robust for community customized HTML
This change makes the code much, much more robust. See, almost all HTML
relevant for this feature is encoded in messages. This allows unexpected
customizations that add additional HTML elements, change the order of DOM
elements, even remove class names and elements.

The <ol class="references"> is the only HTML snippet generated via code,
guaranteed to be there, and used as an entry point because of this.

Instead of the selector utilizing a "*" to detect references with "one"
vs. "many" backlinks, we check if a second backlink exists.

The .first() copies the browsers behavior to only respect the first anchor
in case an id="…" appears multiple times on a page.

The additional .length check further down is a missing sanity check,
currently relevant on frwiki where the expected class="mw-cite-backlink"
got localized.

Bug: T205270
Bug: T210520
Change-Id: Iba9aebfd01508b283933964cfb986d7239d4cf38
2018-11-28 11:56:27 +01:00
WMDE-Fisch 6dda36a1e7 Improve a11y support on backlinks
This changes the a11y support on the main backlinks by introducing the usage
of title and aria-labels. The support for these elements increased a lot since
the topic was first tackled and seems the appropriate way to go.

A new message was introduced for the link that will be set when directly
coming from a clicked refrence to emphasize that the can jump back to where
he came from.

Bug: T206323
Change-Id: Ifa56d41bcdb8100e19f29619796b62bb3c886d2f
2018-11-26 11:36:26 +01:00
Thiemo Kreuz (WMDE) 2b3a62c26b Make arrows/carets links whenever we know where the user came from
I tried to arrange the new code in a way that it is compact, but still
readable. I think it's possible to arrange it even better, but browser
tests should be added first, in my opinion.

Bug: T205271
Change-Id: I1d579ef9d2787fc43c0a8bbf61c583f602dca5d4
2018-11-19 16:27:59 +00:00
Thiemo Kreuz ee8da566e3 Highlight backreference jump marks by making them bold
The separate "ext.cite.a11y" module is kept for (temporary)
compatibility with cached HTML, and should be removed in about
a month.

Browser tests will be added in a separate patch.

Bug: T205270
Change-Id: I26fe41c328157233cc5b06d38d2ba0f7b036a853
2018-11-19 16:46:08 +01:00