jenkins-bot has submitted this change and it was merged.

Change subject: Add extra accessibility labels to jump to citation (↑) links
......................................................................


Add extra accessibility labels to jump to citation (↑) links

Had to do that in JavaScript as doing it server-side would have
made refactoring large parts of the extension necessary.

Bug: 38141
Change-Id: I60ecd2fc0edf2aee89974d8069cc0b075cda3f93
---
M Cite.i18n.php
M Cite.php
A modules/ext.cite.css
A modules/ext.cite.js
4 files changed, 69 insertions(+), 1 deletion(-)

Approvals:
  Hoo man: Looks good to me, but someone else must approve
  Matmarex: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Cite.i18n.php b/Cite.i18n.php
index 30e3a38..4280a90 100644
--- a/Cite.i18n.php
+++ b/Cite.i18n.php
@@ -73,6 +73,8 @@
        'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h 
i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an 
ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn 
bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn 
co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn 
do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en 
eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn 
fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn 
go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn 
ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in 
io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn 
jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn 
ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln 
lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn 
mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn 
no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on 
oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn 
po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn 
qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn 
ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn 
so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn 
to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un 
uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn 
vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn 
wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn 
xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn 
yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn 
zo zp zq zr zs zt zu zv zw zx zy zz',
        'cite_references_link_many_sep'                    => " ",
        'cite_references_link_many_and'                    => " ",
+       'cite_references_link_accessibility_label'         => 'Jump up',
+       'cite_references_link_many_accessibility_label'    => 'Jump up to:',
 
        # Although I could just use # instead of <li> above and nothing here 
that
        # will break on input that contains linebreaks
@@ -205,6 +207,11 @@
        'cite_references_link_many_format_backlink_labels' => '{{Optional}}',
        'cite_references_link_many_sep' => '{{optional}}',
        'cite_references_link_many_and' => '{{optional}}',
+       'cite_references_link_accessibility_label' => 'Text for screen readers 
to describe the jump to citation link ("↑").',
+       'cite_references_link_many_accessibility_label' =>
+'Text for screen readers to describe the jump to citation links (a b c ...) 
for citations which are used in multiple places.
+This is going to be prepended to the first link, the following ones will just 
be read by screen readers as they are visible.',
+
        'cite_references_prefix' => '{{notranslate}}',
        'cite_references_suffix' => '{{notranslate}}',
 );
diff --git a/Cite.php b/Cite.php
index 99d5163..3f07794 100644
--- a/Cite.php
+++ b/Cite.php
@@ -24,7 +24,7 @@
 $wgExtensionCredits['parserhook'][] = array(
        'path' => __FILE__,
        'name' => 'Cite',
-       'author' => 'Ævar Arnfjörð Bjarmason',
+       'author' => array( 'Ævar Arnfjörð Bjarmason', 'Marius Hoch' ),
        'descriptionmsg' => 'cite-desc',
        'url' => 'https://www.mediawiki.org/wiki/Extension:Cite/Cite.php'
 );
@@ -70,6 +70,15 @@
        'remoteExtPath' => 'Cite/modules'
 );
 
+$wgResourceModules['ext.cite'] = $citeResourceTemplate + array(
+       'scripts' => 'ext.cite.js',
+       'styles' => 'ext.cite.css',
+       'messages' => array(
+               'cite_references_link_accessibility_label',
+               'cite_references_link_many_accessibility_label',
+       ),
+);
+
 $wgResourceModules['ext.cite.popups'] = $citeResourceTemplate + array(
        'scripts' => 'ext.cite.popups.js',
        'position' => 'bottom',
@@ -98,6 +107,7 @@
 function wfCiteBeforePageDisplay( $out, &$sk ) {
        global $wgCiteEnablePopups;
 
+       $out->addModules( 'ext.cite' );
        if ( $wgCiteEnablePopups ) {
                $out->addModules( 'ext.cite.popups' );
        }
diff --git a/modules/ext.cite.css b/modules/ext.cite.css
new file mode 100644
index 0000000..8262748
--- /dev/null
+++ b/modules/ext.cite.css
@@ -0,0 +1,13 @@
+/**
+ * Per 
http://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html
+ */
+.cite-accessibility-label {
+       position: absolute !important;
+       clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+       clip: rect(1px, 1px, 1px, 1px);
+       padding: 0 !important;
+       border: 0 !important;
+       height: 1px !important;
+       width: 1px !important;
+       overflow: hidden;
+}
diff --git a/modules/ext.cite.js b/modules/ext.cite.js
new file mode 100644
index 0000000..fbec1f3
--- /dev/null
+++ b/modules/ext.cite.js
@@ -0,0 +1,38 @@
+/**
+ * Main JavaScript for the Cite extension. The main purpose of this file
+ * is to add accessibility attributes to the citation links as that can
+ * hardly be done server side (bug 38141).
+ *
+ * @author Marius Hoch <[email protected]>
+ */
+( function ( mw, $ ) {
+       'use strict';
+
+       mw.hook( 'wikipage.content' ).add( function ( $content ) {
+               var accessibilityLabelOne = mw.msg( 
'cite_references_link_accessibility_label' ),
+                       accessibilityLabelMany = mw.msg( 
'cite_references_link_many_accessibility_label' );
+
+               $content.find( '.mw-cite-backlink' ).each( function () {
+                       var $links = $( this ).find( 'a' ),
+                               label;
+
+                       if ( $links.length > 1 ) {
+                               // This citation is used multiple times. Let's 
only set the accessibility label on the first link, the
+                               // following ones should then be 
self-explaining. This is needed to make sure this isn't getting
+                               // too wordy.
+                               label = accessibilityLabelMany;
+                       } else {
+                               label = accessibilityLabelOne;
+                       }
+
+                       // We can't use aria-label over here as that's not 
supported consistently across all screen reader / browser
+                       // combinations. We have to use visually hidden spans 
for the accessibility labels instead.
+                       $links.eq( 0 ).prepend(
+                               $( '<span>' )
+                                       .addClass( 'cite-accessibility-label' )
+                                       // Also make sure we have at least one 
space between the accessibility label and the visual one
+                                       .text( label + ' ' )
+                       );
+               } );
+       } );
+} )( mediaWiki, jQuery );

-- 
To view, visit https://gerrit.wikimedia.org/r/79472
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I60ecd2fc0edf2aee89974d8069cc0b075cda3f93
Gerrit-PatchSet: 24
Gerrit-Project: mediawiki/extensions/Cite
Gerrit-Branch: master
Gerrit-Owner: Hoo man <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Daniel Werner <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Matmarex <[email protected]>
Gerrit-Reviewer: Nemo bis <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: TheDJ <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to