У меня есть новое решение, основанное на исходных ограничениях new del>. (Я не удаляю свой первый ответ, поскольку другие могут посчитать его полезным.)
Я провел кучу исследований, и я думаю, что он будет работать немного сложнее.
info functions
, чтобы найти адрес rand
в таблице символов Используйте dlopen, а затем dlsym, чтобы загрузить функцию в память и получить ее адрес
call (int) dlopen("my_rand.so", 1)
-> -val-
call (unsigned int) dlsym(-val-, "my_rand")
-> my_rand_addr
jumpq 0x*my_rand_addr*
set {int}*rand_addr* = *my_rand_addr*
для изменения инструкции таблицы символов Continue
выполнение: теперь всякий раз, когда вызывается rand
, он переходит к my_rand
вместо Это немного сложно и очень приблизительно, но я уверен, что это сработает , Единственное, чего я еще не достиг - это создание кода инструкции jumpq
. Все до этого момента работает нормально.
Согласно второй таблице примеров в спецификации HTML, это colgroup
, несмотря на отсутствие тегов colgroup
.
http: // www.w3.org/TR/html4/struct/tables.html#h-11.4.1[127 impression
Группа WebAIM (веб-доступность в уме) опубликовала отличную статью о создании таблиц доступных данных . В целом, они рекомендуют избегать составных строк или столбцов, поскольку программы чтения с экрана не могут надежно интерпретировать разметку.
Если не считать полного исключения составных столбцов, мне действительно повезло с использованием атрибутов id / headers в сочетании с атрибутом scope. Хотя разметка более подробна, это, кажется, упрощает работу JAWS, и в результате возникает меньше проблем с интерпретацией данных.
Вот как ваш пример будет выглядеть с идентификатором / заголовками:
<table>
<tr>
<th id="scores" colspan="3">Scores</th>
</tr>
<tr>
<th id="english" scope="col">English</th>
<th id="maths" scope="col">Maths</th>
<th id="science" scope="col">Science</th>
</tr>
<tr>
<td headers="scores english">12</td>
<td headers="scores maths">16</td>
<td headers="scores science">20</td>
</tr>
</table>