Browse Source

Fix https://core.spip.net/issues/4652 : en html5 remplacer l'attribut summary des <table> par une description offscreen dans le caption (ou un caption offscreen si pas de caption proprement dit) + un aria-describedby qui pointe dessus.

On choisi une balise <small> pour le summary car si la classe offscreen n'est pas supportee, il s'affiche ainsi comme etant secondaire par rapport au caption
pull/4/head
Cerdic 2 months ago
parent
commit
d6f29922c8
  1. 18
      inc/texte.php

18
inc/texte.php

@ -393,10 +393,26 @@ function traiter_tableau($bloc) {
if (preg_match(',^\|\|([^|]*)(\|(.*))?$,sS', rtrim($ligne, '|'), $cap)) {
$cap = array_pad($cap, 4, null);
$l = 0;
$summary = '';
if ($describedby = trim($cap[3])) {
if (!html5_permis()) {
$summary = ' summary="' . entites_html(trim($cap[3])) . '"';
$describedby = '';
}
else {
$iddescribedby = 'dby'.$tabid;
$summary = ' aria-describedby="'.$iddescribedby.'"';
}
}
if ($caption = trim($cap[1])) {
if ($describedby) {
$caption .= '<br /> <small id="'.$iddescribedby.'" class="summary offscreen">' . $describedby . '</small>';
}
$debut_table .= "<caption>" . $caption . "</caption>\n";
}
$summary = ' summary="' . entites_html(trim($cap[3])) . '"';
elseif ($describedby) {
$debut_table .= '<caption id="'.$iddescribedby.'" class="summary offscreen"><small>' . $describedby . "</small></caption>\n";
}
}
// - <thead> sous la forme |{{titre}}|{{titre}}|
// Attention thead oblige a avoir tbody

Loading…
Cancel
Save