2017-01-01 2 views
0

У меня есть викторина на моей странице, которая в основном представляет собой h1 для вопросов и 4 кнопки в списке.перефокусировка на элементе с jquery

для обеспечения доступности У меня есть ария-метка для каждой кнопки, и когда пользователь нажимает неправильный ответ, я добавляю «неправильный ответ» для метки aria. чтобы помочь пользователю понять, что он нажал на неправильный ответ, я хочу переориентироваться на кнопку, чтобы пользователь знал, что это неверно.

моя проблема в том, что если фокус уже на кнопках, программа чтения с экрана не перечитывает эту кнопку.

<h1>this is a question</h1> 
<ul> 
    <li><button id="answer_a" aria-label="answer a">this is answer a</button></li> 
    <li><button id="answer_b" aria-label="answer b">this is answer b</button></li> 
    <li><button id="answer_c" aria-label="answer c">this is answer c</button></li> 
    <li><button id="answer_d" aria-label="answer d">this is answer d</button></li> 
</ul> 

$('#answer_a').on('click', function(){ 
    $(this).attr('aria-label', 'incorrect_answer').focus(); 
}); 

https://jsfiddle.net/koL51nxu/

+0

Вам не хватает '' 'после события' click'. Кроме того, вы сомневаетесь, по крайней мере, для меня. Можете ли вы, пожалуйста, продемонстрировать свою проблему в скрипке, чтобы я мог помочь? Теперь у вас есть событие click, прикрепленное только к первой кнопке, которая немного пропущена. – Ionut

+0

Я добавил jsfiddle. Я попытаюсь очистить свой вопрос: я использую озвучку, чтобы сделать свою викторину доступной, когда пользователь фокусируется на кнопке, голос зачитывает арию. когда он нажимает на неправильный ответ, ария-метка изменилась, но голос не читает новую метку арии, пока я не сосредоточусь и не вернусь от кнопки. – user2587454

+0

Я не понимаю, какой эффект у вас нужен. –

ответ

0

Вы можете использовать disabled атрибут для этого.

$('#answer_a').on('click', function(){ 
 
    $(this).attr('aria-label', 'incorrect_answer'); 
 
\t $(this).attr('disabled', 'disabled'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<h1>this is a question</h1> 
 
<ul> 
 
    <li><button id="answer_a" aria-label="answer a">this is answer a</button></li> 
 
    <li><button id="answer_b" aria-label="answer b">this is answer b</button></li> 
 
    <li><button id="answer_c" aria-label="answer c">this is answer c</button></li> 
 
    <li><button id="answer_d" aria-label="answer d">this is answer d</button></li> 
 
</ul>

jsfiddle

Изменение функции $('#answer_a') к $('ul li button') уменьшит ваш код. Так что нет необходимости писать код снова и снова для каждой кнопки - example

+0

Зачем OP отключает кнопку? – epascarello

0

спасибо всем.

Я обнаружил, что используя: blur() перед тем, как переоризатор помог мне.