Убираем лишнюю графику

(JAWS и технологии Com/Automation)
Дата публикации:2005
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

Так сложилось, что большинство web-документов, публикуемых в интернете, разрабатываются для зрячих посетителей и по этой причине содержат много графических элементов, которые малоинформативны для тех, кто пользуется программой экранного доступа Jaws for Windows. Однако изобилие графики приводит к речевому "засорению" прослушиваемых сообщений, поэтому в программе Jaws предусмотрена возможность отключить отображение и озвучивание графических элементов как для программы InternetExplorer вообще, так и для отдельно взятого сайта (страницы) в частности. Первая из указанных опций доступна в Диспетчере конфигураций, а вторая - во время просмотра html-страниц в InternetExplorer при нажатии комбинации клавиш Insert + V (проверено для версий 4.51 и выше).

Приводимый ниже скрипт выполняет аналогичное действие и помещён в качестве иллюстрации механизма взаимодействия Jaws и InternetExplorer посредством COM-технологии. При однократном нажатии связанной со скриптом комбинации клавиш все картинки на странице становятся невидимыми (в буквальном смысле, то есть даже пропадает значок, указывающий местоположение картинки, который появляется, когда в свойствах InternetExplorer запрещено отображение картинок). После работы скрипта Jaws при чтении не произносит "Graphics..." и при нажатии клавиши "G" не находит на странице ни одной картинки. При двойном нажатии комбинации клавиш, связанных со скриптом, все картинки на странице восстанавливаются, то есть становятся видимыми или на их месте отображается упомянутый выше значок.

Скрипт проверялся для версий Jaws от4.51 и выше. Время работы скрипта сильно зависит от количества графических элементов на странице.

Script ImagesToggle ()
Var
Object doc,
Object images,
Object 	oImg,
Object oStyle,
Int nImages,
Int nIdx,
Int nToggle
If (ieVersion == IE3) Then
	Say("Поддерживаются только версии InternetExplorer от 4 и выше", OT_MESSAGE)
	return
EndIf
let doc = ie4GetCurrentDocument ()
let images= doc.Images
let nImages = images.length
If (nImages== 0) Then
	Say("На этой странице картинок нет.", OT_MESSAGE)
	return
EndIf
let nToggle = 0
If IsSameScript () Then
	let nToggle = 1
EndIf
let nIdx = 0
; Начинаем цикл по всем ссылкам на странице.
While (nIdx < nImages)
	let oImg= images(nIdx)
	let oStyle = oImg.style
	If nToggle Then
		let oStyle.visibility = "visible"
	Else
		let oStyle.visibility = "hidden"
	EndIf
	let oImg.style = oStyle
		let nIdx = nIdx+1
EndWhile
Refresh ()
If nToggle Then
	Say("Показал все картинки", OT_MESSAGE)
Else
	Say("Спрятал все картинки", OT_MESSAGE)
EndIf
EndScript


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2024