과제를 진행하기 전 대략적으로 위와 같이 기준을 세웠습니다.
기본적이라고 생각되어지는 것들을 다시 되새겨본 이유는 단지 보여지는 것을 완성하기 위한 결과물이 되고싶지 않았기 때문입니다.
<form action="/" class="login-form">
<ul class="login-list">
<li class="login-list__item">
<div class="user-info">
<label for="user-id" class="sr-only">아이디</label>
<input class="user-info__input" id="user-id" name="user-id" type="email" placeholder="아이디" required />
<span class="user-info__validation">아이디는 이메일을 입력해 주세요</span>
</div>
</li>
<li class="login-list__item">
<div class="user-info">
<label for="user-password" class="sr-only">비밀번호</label>
<input class="user-info__input" id="user-password" name="user-password" type="password" minlength="10" placeholder="비밀번호" required />
<span class="user-info__validation">비밀번호는 10자리 이상 입력해 주세요</span>
</div>
</li>
</ul>
<!-- 이하생략 -->
</form>
.user-info {
/* 생략 */
.user-info__input {
/* 생략 */
& + .user-info__validation {
display: none;
}
&:user-invalid + .user-info__validation {
display: block;
margin-top: 0.4375rem;
margin-block-start: 0.4375rem;
font-size: var(--font-size-14);
color: var(--color-red);
}
}
}
<div class="login-ip">
<label for="ip-security" class="login-ip__label">IP 보안</label>
<button type="button" onclick="ipSwitch(), window.open('./pages/ip_security.html')" aria-pressed="false" id="ip-security" class="login-ip__button">
<span class="switch off">OFF</span>
<span class="switch on">ON</span>
</button>
</div>
function ipSwitch() {
let el = document.getElementById("ip-security");
el.ariaPressed = "true";
}
- 키보드 접근 순서 변경
과제의 조건 중 하나는 키보드로도 폼 서식을 접근할 수 있게 하는 것이었습니다.
탭키로 조작하면 키보드 접근이 가능했지만, 저는 아래의 그림처럼 탭순서를 변경하고 싶었습니다.
- IP 보안 접근 방식