Проверьте и вставьте атрибут alt для изображений, которые его пропускают - PullRequest
0 голосов
/ 11 мая 2009

Я хочу написать инструмент Java для оценки HTML-страниц существующего сайта, и если какое-либо изображение не имеет атрибута alt, инструмент вставит alt = "" в это изображение. Одним из подходов является использование анализатора HTML (например, HtmlCleaner) для генерации DOM, а затем добавление атрибута alt к изображениям в DOM перед записью HTML.

Однако этот подход не сохранит исходный HTML-код без изменений и, вероятно, вызовет некоторые непредсказуемые побочные эффекты, особенно. когда количество HTML-страниц огромно, и нет гарантии, что они правильно сформированы.

Есть ли более безопасный способ сделать это (то есть следует сохранить исходный HTML-код без изменений и добавить только атрибут alt)?

Ответы [ 3 ]

2 голосов
/ 11 мая 2009

За исключением написания какого-то ужасного беспорядка регулярного выражения или другого кода манипуляции со строками, я не верю, что есть другой способ сделать это.

Я задаю вопрос Почему Вы хотите это сделать? Единственная причина, которую я могу себе представить, - пройти какую-то автоматическую проверку, но причина, по которой требуются теги alt, заключается в удобстве использования. Добавление пустых тегов alt никак не поможет. Вы просто скрываете проблему.

Вместо этого я бы предложил написать немного Javascript, который бросает красную рамку вокруг любого изображения без пропуска тега alt и заставляет дизайнеров внешнего интерфейса добавлять значимых тегов alt к каждому помеченному таким образом изображению.

1 голос
/ 11 мая 2009

Добавлять пустые тэги alt в свой макет бессмысленно. Я второй Крис в том, что он побеждает цель иметь в первую очередь тэги alt, и я согласен с комментарием Дэвида Дорварда.

Но, если здесь есть какой-то скрытый мотив, вы можете сделать это после факта в браузере с помощью javascript (или, предпочтительно, jQuery). Браузер клиента, безусловно, не сможет изменить исходный HTML-код и достаточно умен, чтобы анализировать его, даже если он не совсем правильно сформирован.

Используя jQuery, разместите этот скрипт в разделе заголовка вашей страницы:

<script language="javscript">
$(function() {
    $('img:not([alt])').attr('alt','');
});
</script>

И убедитесь, что вы включили библиотеку jQuery .

0 голосов
/ 11 мая 2009

В прошлом я использовал библиотеку Jericho HTML Parser с успехом для анализа HTML. Он должен хорошо работать с плохо сформированным HTML. Это изменит оригинальный HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...