4.2 KiB
4.2 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7790367417b2b2512ab0 | Use tabindex to Add Keyboard Focus to an Element | 0 | Use tabindex para adicionar foco do teclado a um elemento |
Description
tabindex
HTML possui três funções distintas relacionadas ao foco do teclado de um elemento. Quando está em uma tag, indica que o elemento pode ser focado. O valor (um inteiro que é positivo, negativo ou zero) determina o comportamento. Determinados elementos, como links e controles de formulário, recebem automaticamente o foco do teclado quando um usuário é direcionado por uma página. Está na mesma ordem em que os elementos vêm na marcação de fonte HTML. Essa mesma funcionalidade pode ser fornecida a outros elementos, como div
, span
e p
, colocando-se um tabindex="0"
neles. Aqui está um exemplo: <div tabindex="0">I need keyboard focus!</div>
Observação Um valor de
tabindex
negativo (tipicamente -1) indica que um elemento é focalizável, mas não é alcançável pelo teclado. Esse método geralmente é usado para trazer o foco ao conteúdo de forma programática (como quando um div
usado para uma janela pop-up é ativado) e está além do escopo desses desafios. Instructions
tabindex
à tag p
e defina seu valor como "0". Bônus - usando tabindex
também ativa a pseudo-classe CSS :focus
para trabalhar na tag p
. Tests
tests:
- text: Seu código deve adicionar um atributo <code>tabindex</code> à tag <code>p</code> que contém as instruções do formulário.
testString: 'assert($("p").attr("tabindex"), "Your code should add a <code>tabindex</code> attribute to the <code>p</code> tag that holds the form instructions.");'
- text: Seu código deve definir o atributo <code>tabindex</code> na tag <code>p</code> para um valor de 0.
testString: 'assert($("p").attr("tabindex") == "0", "Your code should set the <code>tabindex</code> attribute on the <code>p</code> tag to a value of 0.");'
Challenge Seed
<head>
<style>
p:focus {
background-color: yellow;
}
</style>
</head>
<body>
<header>
<h1>Ninja Survey</h1>
</header>
<section>
<form>
<p>Instructions: Fill in ALL your information then click <b>Submit</b></p>
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br>
<fieldset>
<legend>What level ninja are you?</legend>
<input id="newbie" type="radio" name="levels" value="newbie">
<label for="newbie">Newbie Kitten</label><br>
<input id="intermediate" type="radio" name="levels" value="intermediate">
<label for="intermediate">Developing Student</label><br>
<input id="master" type="radio" name="levels" value="master">
<label for="master">9th Life Master</label>
</fieldset>
<br>
<fieldset>
<legend>Select your favorite weapons:</legend>
<input id="stars" type="checkbox" name="weapons" value="stars">
<label for="stars">Throwing Stars</label><br>
<input id="nunchucks" type="checkbox" name="weapons" value="nunchucks">
<label for="nunchucks">Nunchucks</label><br>
<input id="sai" type="checkbox" name="weapons" value="sai">
<label for="sai">Sai Set</label><br>
<input id="sword" type="checkbox" name="weapons" value="sword">
<label for="sword">Sword</label>
</fieldset>
<br>
<input type="submit" name="submit" value="Submit">
</form><br>
</section>
<footer>© 2018 Camper Cat</footer>
</body>
Solution
// solution required