Bonjour j'ai trouvé qqchose dans agora qui ne coute rien de rajouter et qui
me semble trait important :
la support des balises d'accessibilité sur les tableau de donnée généré par
spip(th, caption, summary, id, headers)
voilà le code trouvé dans inc_texte
//
// Tableaux
//
$letexte = ereg_replace("^\n?\|", "\n\n|", $letexte);
$letexte = ereg_replace("\|\n?$", "|\n\n", $letexte);
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");
while (is_integer($tableBeginPos) && is_integer($tableEndPos) &&
$tableBeginPos < $tableEndPos + 3) {
$textBegin = substr($letexte, 0, $tableBeginPos);
$textTable = substr($letexte, $tableBeginPos + 2, $tableEndPos -
$tableBeginPos);
$textEnd = substr($letexte, $tableEndPos + 3);
$newTextTable = "</p><table class=\"spip\"
summary=\""._T('info_summary_tab')."\">\n<caption>__lecaption__</caption>";
$rowId = 0;
$lineEnd = strpos($textTable, "|\n");
while (is_integer($lineEnd)) {
$rowId++;
$row = substr($textTable, 0, $lineEnd);
$textTable = substr($textTable, $lineEnd + 2);
if ($rowId == 1 &&
ereg("^(\\|[[:space:]]*\\{\\{([^}]+)\\}\\}[[:space:]]*)+$", $row,
$tableHeaders)) {
$tableHeaders = array_slice($tableHeaders, 2);
$newTextTable .= '<tr class="row_first">';
$rowTab = explode('|', substr($row, 1));
while (list(, $cell) = each($rowTab)) {
$cell = substr($cell, 2, -2);
$newTextTable .= '<th
id="'.textToId($cell).'">'.$cell.'</th>';
}
$newTextTable = str_replace("__lecaption__",
$tableHeaders[0], $newTextTable);
} else {
$newTextTable .= '<tr class="row_'.($rowId % 2 ? 'odd' :
'even').'">';
$newTextTable .= ereg_replace("\|([^\|]+)", "<td
headers=\"__tempheader__\">\\1</td>", $row);
if (count($tableHeaders)) {
for ($i = 0; $i < count($tableHeaders); $i++) {
$newTextTable = substr_replace($newTextTable,
textToId($tableHeaders[$i]), strpos($newTextTable, '__tempheader__'), 14);
}
}
}
$newTextTable .= '</tr>';
$lineEnd = strpos($textTable, "|\n");
}
$newTextTable .= "</table>";
$letexte = $textBegin . $newTextTable . $textEnd;
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");
}