Сканировать сайт на предмет изображений и атрибутов alt

Мы хотим запустить сканирование нашего сайта, чтобы получить отчет со следующей информацией:

  1. каждый найденный тег изображения и визуальное представление этого изображения в отчете
  2. атрибут alt для этого изображения (также укажите, не найден ли атрибут alt)

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


person Alex    schedule 06.01.2011    source источник
comment
Отличный вопрос! Следует отметить пару вещей: некоторые методы могут обнаруживать теги IMG, которые находятся в исходном состоянии страницы, но могут работать или не работать с IMG, которые добавляются в DOM во время выполнения через JavaScript. Вы также можете следить за случаями, когда изображение на самом деле является фоновым изображением CSS, а не IMG. В зависимости от практики кодирования вашего сайта это могут быть, а могут и не быть проблемы.   -  person BrendanMcK    schedule 13.03.2012
comment
Атрибуты alt должны обеспечивать текстовую замену изображения, которое часто не является его описанием. Использование описаний приводит к появлению таких ревунов: Large Yellow Bullet Introduction Large Yellow Bullet The Problem Small Red Bullet Historical Analysis Small Red Bullet Current Situation Large Yellow Bullet The Solution (разрывы строк и форматирование потеряно из-за ограничений SO комментариев).   -  person Quentin    schedule 30.04.2012


Ответы (6)


Попробуйте пакет Python Beautiful Soup. Он проанализирует весь ваш HTML-код в очень простой инструкции. Попробуйте этот код:

website = urllib2.urlopen(url)
websitehtml = website.read()
soup = BeautifulSoup(websitehtml)
matches = soup.findAll('img')
for row in matches:
    print row['src']
    print row['alt']

Отсюда используйте row['src'], чтобы установить src изображения и распечатать alt рядом с ним.

person Jeremy Thiesen    schedule 06.04.2012
comment
упс, небольшая опечатка: row ['src'] - person Jeremy Thiesen; 06.04.2012

На Accessify.com есть множество инструментов тестирования доступности в виде букмарклетов (или "фавелец"). Один из них делает то, что, я думаю, вы ищете. Посмотрите на этой странице «Альтернативные атрибуты - показать все». Перетащите эту ссылку в свои закладки, а затем используйте ее на странице, которую хотите протестировать.

Кроме того, на панели инструментов Web Accessibilty (доступной для Internet Explorer и Opera) есть опция «Список изображений». в разделе «Изображения», который будет делать то же самое - перечислить изображения и код, связанный с каждым из них.

Что касается проверки целых сайтов, существуют бесплатные средства проверки доступности, которые должны иметь такую ​​функцию, например дизайнер.

person Jon Gibbins    schedule 24.03.2011

http://sourceforge.net/projects/simplehtmldom/

Я бы использовал что-то подобное, очень хорошее и простое в использовании!

person benhowdle89    schedule 06.01.2011
comment
Отличный фреймворк, но я хотел бы посмотреть, есть ли уже что-то, что также создает отчеты. Нашим последним средством было бы что-нибудь построить. Спасибо за комментарий! - person Alex; 06.01.2011
comment
Ничего подобного я не встречал. Но сделать его будет довольно просто. Используйте указанную выше библиотеку, чтобы захватить все изображения / альты с URL-адреса, который вы его подключаете, и просто выполнить простой цикл и эхо ‹li› каждого img и alt рядом? Это то, что вам нужно? - person benhowdle89; 06.01.2011
comment
Он также должен быть рекурсивным. - person jocull; 06.01.2011

В этом ответе на SO некоторые указатели на использование Selenium для проверки вашего сайта на наличие изображений с альтернативным текстом.

person Don Zacharias    schedule 10.03.2012

Похоже, вы хотите что-то, что работает, например, например Джереми предоставил. То есть, просто длинный список с каждым изображением и его атрибутом alt. Проблема в том, что это не предоставит вам достаточно контекста, чтобы предоставить полезный атрибут alt, потому что атрибут alt не должен (в общем) «точно описывать [...] изображение, которое они представляют», а скорее описывать, что это за изображение. предназначен для представления на текущей странице. Трудно дать краткое описание того, как писать полезные альтернативные тексты. Сама по себе статья в Википедии об атрибутах alt отстает от текущего состояния, но ссылки полезны . Конечно, есть много другое ТАК вопросы, связанные с этим.

Может быть какой-то заранее написанный инструмент, который сделает то, что вы просили, например, если все страницы доступны с начальной страницы, можно было бы просто просканировать весь веб-сайт и создать список. Но если на некоторые страницы можно попасть, например, поиска, вероятно, потребуется какой-то инструмент, ориентированный на конкретный сайт.

В любом случае, давайте предположим, что у нас есть такой инструмент. Даже в этом случае его использование довольно ограничено. Даже если вы можете получить список всех изображений на веб-сайте с соответствующим замещающим текстом, вам все равно придется посещать все страницы, по одной странице за раз, и, вероятно, использовать какое-либо расширение веб-разработчика в каком-либо браузере (есть такие инструменты предоставлено в других ответах, я думаю), который отображает все альтернативные тексты на странице; а затем исправьте замещающий текст после, который вы узнали, для чего фактически используется изображение на соответствующей странице.

Таким образом, этот инструмент, который вы запрашиваете, будет полезен только для поиска страниц с возможным неправильным использованием атрибута alt (т. Е. Любой страницы с изображением на нем). (Но в зависимости от рассматриваемого сайта, даже это может, конечно, помочь.) Вам все равно нужно открыть веб-страницу, на которой фактически используется изображение (или, если хотите, прочитать HTML-код страницы), чтобы узнайте, какой будет правильный / лучший альтернативный текст.

Таким образом, в лучшем случае вы получаете список страниц с изображениями, которые необходимо просмотреть. Но при этом все равно будут упущены некоторые важные случаи, например случаи, когда свойство CSS background-image используется для отображения кнопки (вместо изображения img), это должно иметь замещающий текст.

person cic    schedule 30.04.2012

Вы можете использовать мощный JAVA API: JSOUP

Документация по созданию селекторов: синтаксис селекторов

Обучение: онлайн-лаборатория

Для вашего случая:

Document doc = Jsoup.connect("https://stackoverflow.com/").get();
    System.out.println(doc.title());
    Elements imgWithAltAttr = doc.select("img[alt]");
    for (Element img : imgWithAltAttr) {
        System.out.println("%s\n\t%s",
                img.attr("alt"), img.absUrl("src"));
    }

Мы используем Jsoup в нашем проекте специальных возможностей: https://github.com/Tanaguru/Tanaguru

person mkebri    schedule 29.03.2018