#angular #accessibility #area
#angular #Специальные возможности #область
Вопрос:
В настоящее время у меня есть разные прямоугольные изображения в теге области внутри тега карты.
<map name="test" style="z-index:99999">
<area href="javascript:void(0);"
[shape]="'rect'" *ngFor="let coords of imagesCoords"
[coords]="coords.AreaCoordinates.manipulatedCoords"
[target]="'_self'"
[ngStyle]="{'top': coords.customTop 'px', 'left': coords.customLeft 'px', 'width': coords.customWidth 'px', 'height': coords.customHeight 'px'}"
/>
</map>
В принципе, я хочу, чтобы фокус отображался визуально, когда пользователь обращается к каждому изображению с помощью клавиатуры / мыши.
Как мы можем установить фокус на каждое изображение в теге области?
Комментарии:
1. Какую информацию пользователь программы чтения с экрана ожидает услышать, когда он фокусирует этот элемент? Какова цель сделать элемент интерактивным. Нам нужно знать это, чтобы предложить лучший совет, но короткий ответ
tabindex="0"
: даст вам функциональность для фокусировки обычно не фокусируемого элемента.2. 1. Пользователь программы чтения с экрана ожидает услышать название / описание товара, например, скидку 20% на продукт abc. 2. Цель создания — сделать доступным для пользователей клавиатуры (ADA) надеюсь, это прояснит мои требования @GrahamRitchie
3. Извините, я не понял, из приведенного примера нет доступной информации, вам нужно использовать
alt
aria-label
илиaria-labelledby
или что-то подобное, чтобыarea
у вас был текст, который может считывать программа чтения с экрана. Я также имел в виду, что происходит, когда пользователь нажимает на элемент, поскольку у вас есть ajavascript:void
в качествеhref
.javascript:void(0)
вhref
коде часто чувствуется, что вы делаете что-то не совсем правильно с точки зрения доступности, поскольку гиперссылка всегда должна указывать на URL-адрес и быть частью навигации, если это должно отображать всплывающее окно, могут быть лучшие и более семантические способы достижения этого.4. Есть ли у вас общедоступная версия страницы, чтобы мы могли посмотреть, есть ли лучший способ сделать то, что вы делаете (или подтвердите, что вы делаете это правильно, и помогите с проблемой фокусировки). Как я уже сказал, это
tabindex="0"
добавит элемент в порядок фокусировки на странице, чтобы ответить на вопрос, как установить фокус. Затем вам просто понадобится индикатор фокуса CSSarea:focus{outline: 2px solid #333;}
, например.