homework

3차 과제 - 네이버 로그인 폼

🔗 login.html 바로가기

과제를 수행하기에 앞서 중점으로 둔 것들

  1. 신뢰할 수 있을만한 사이트에서 레퍼런스를 찾아볼 것. (mdn, whatwg, w3c 등)
  2. 마크업은 컴포넌트 단위로 설계해보려고 노력할 것.
  3. 준수한 웹접근성을 구현할 것.
  4. css 네이밍 규칙은 BEM 패턴으로 할 것.

과제를 진행하기 전 대략적으로 위와 같이 기준을 세웠습니다.
기본적이라고 생각되어지는 것들을 다시 되새겨본 이유는 단지 보여지는 것을 완성하기 위한 결과물이 되고싶지 않았기 때문입니다.

회원정보 입력 폼 마크업

<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>

Validation Check

Validation Check

.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);
    }
  }
}

IP 보안 값 바꾸기 & 새창열기

<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";
}

아쉬운 점

  1. 키보드 접근 순서 변경

과제의 조건 중 하나는 키보드로도 폼 서식을 접근할 수 있게 하는 것이었습니다.
탭키로 조작하면 키보드 접근이 가능했지만, 저는 아래의 그림처럼 탭순서를 변경하고 싶었습니다.

로그인 키보드 접근 순서

  1. IP 보안 접근 방식

마무리