Web/Frontend

HTML 기초에 센스 더하기

WakaraNai 2021. 2. 8. 22:14
728x90
반응형

스크린 리더를 위한 속성들

lang

lang 속성은 스크린리더 프로그램을 위한 것이다.

1, 2, 3을 한글(ko)은 "일 이 삼"으로 영어(en)는 "one two three"로 읽어준다.

그렇기에 lang은 꼭 적어야하는 속성이다.

<html lang="ko">

 

만약 특정 부분에서 언어를 바꾸고 싶다면 해당 태그에 다시 지정해준다.

<i lang="en">1, 2, 3</i>

 

alt

이미지의 경우는 스크린리더가 동작하지 않기에 이미지에 대한 설명을 위해서 

alt 속성에 간단히 써줘야 한다.

더불어 이미지를 불러오기에 실패했을 때도 도움이 된다는 점.

그러니 img 태그에 alt는 필수 속성이라고 생각하자.

 

<img src= "img/6014.jpgalt="사진">

 

 

Sematic Markup 

Markup 시 태그의 의미, 의도에 맞게 사용해야 한다는 의미.

그 의미에 맞게 사용해야 스크린리더가 정확하게 화면 속 정보를 음성으로 전달할 수 있다

시멘틱하게 마크업을 한다는 의미는, 태그 좀 적합한 곳에 똑바로 써라는 의미로 이해하면 된다

 

 

 

 

inline element VS block element

inline element block element
- 줄바꿈X
- 자식 요소로 inline 요소와 텍스트/문자 포함 가능
- block 요소를 자식 요소로 불가능
- 줄바꿈O
- 자식 요소로 inline 요소와 텍스트/문자 포함 가능
- block 요소 중에서 자식 요소로 포함 가능한 요소와 아닌 요소가 있으니 주의
<a> - block 요소 허용됨, but <input>, <button>X

<img>, <input>, <textarea>, <select>
<p>, <address>, <ol><ul>(<li> 제외), <li> - block 요소 포함 불가능
<form>은 <form>만 자식요소로 불가능

+) <address> :  html 문서의 소유자나 단체의 연락처를 정의할 때 사용. <footer> 내에서 많이 사용

 

+) contents category

종류 내용 ex
Metadata Content <head>에 포함되는 요소.
콘텐츠의 표현, 동작설정, 문서간 관계 설정, 정보전달을 포함하는 요소를 의미
<link>, <meta>, <script>, <style>, <title> ...
Flow Content <body>에 포함되는 요소. <h1>, <address>, <p>, <a>, <img>, <ul>, <table>, <form> ...
Sectioning Content heading과 footer의 범위를 정의 <article>, <aside>, <nav>, <section>...
Phrasing Content text를 마크업하는 요소 <a>, <strong>, <em>, <sub> ...
Embedded Content HTML에 다른 리소스를 삽입하는 요소 <img>, <audio>, <video>, <iframe> ...
Interactive Content 사용자와의 상호작용을 위한 요소 <a>, <button>, <select>, <audio>, <video> ...

 

+) Phrasing Content

<em> 강조하고 싶은 텍스트를 정의. 기울임체로 표시됨.
문맥의 의미까지 변화시킬 정도임
<strong> 중요한 텍스트를 정의. 볼드체로 표시됨.
<b> 의미X. 그저 볼드체로 표시. => CSS로도 가능
<mark> 주의 깊게 볼 텍스트를 강조하기 위해.
노란색으로 표시됨.
<small> 주의사항, 법적제한, 저작권 등을 정의.
작은 글씨로 표시됨.
<sub> 와 <sup> 아래첨자 그리고 윗첨자 텍스트 정의

 

<a> 태그

- 내부 링크

문서 내 이동, 건너뛰기 링크 등으로도 불림 (Skip Navigation)

 

<a href="#conent"> 

해당 태그를 클릭 시 선택자 id가 #(id이름)인 태그로 찾아감

html 문서 내용이 길어져 한 눈에 내용이 보이지 않을 때 사용

 

<a href="#"> 

id 이름 없이 #만 적어둔다면 해당 html 문서의 최상단으로 이동

이를 방지하기 위해선, <a href="javascript:;">

 

- target 속성

링크된 문서를 어떤 방식으로 브라우저에 보여줄 것인지 정하는 속성

ex) _blank : 링크된 문서를 새 탭(새 창)으로 보여줌 -> 스크린리더도 새 창으로 열린다는 것을 말해줌.

 

만약 자바스크립트로 새 창을 띄운다면 꼭 title 속성으로 새 창 표시를 알려주어야 함

ex) <a href="#" onclick="window.open('http://~~');  return false"   title="새 창">링크</a>

 

 

 

하나의 img에 여러 개의 링크 적용하기 - <map>

<img>에 usemap="#맵이름" 속성을 명시하고

아래 <map> 태그 속 자식 요소인 <area> 태그에 링크 적기 

+) <area>에 target 속성 가능

<img src="img/4601254.jpg" alt="사진" usemap="#mapping">
<map name="mapping">
    <area shape="rect" coords="0,0,10,10" href="https://www.google.co.kr/" alt="사각형">
    <area shape="circle" coords="100,100,50" href="https://www.naver.com/" alt="원" target="_blank">
    <area shape="poly" coords="각 꼭짓점의 x,y 좌표값" href="https://ko.reactjs.org/" alt="다각형">
</map>

 

 

<table>

마크업 순서: <table> -> <tr>행 -> <td>d열

column끼리 묶고 싶다면 <colgroup>, <col> 태그를 먼저 사용

  <style>
    table{
      width:100%;
      border-collapse: collapse;
    }
    .c1{
    	background:#ff0;
    }
    .c2{
    	background:#0ff;
    }
  </style>
<table>
	<colgroup>
    		<col class="c1">
            <col class="c2">
    </colgroup>
    
    ~~~

</table>

 

+) <th>: 제목 역할을 하는 셀을 정의할 때 사용

<thead> 표의 내용의 제목 영역, <tbody> 본문 영역, <tfoot>열의 요약 영역

  <style>
    table{
      width:100%;
      border-collapse: collapse;
    }
    td, th{
      border: 1px solid #000;
    }
  </style>

 

+) 행 또는 열 합치기

<td rowspan="2">, <td colspan="3">

 

 

 

<form>, <fieldset>

- action 속성

입력된 내용을 처리해줄 프로그램의 주소(URL)를 지정

 

- method 속성

서버 프로그램에 어떤 방식으로 값을 전달할지 정의

1. get 방식 : 검색

2. post 방식 : 로그인, 회원가입 (중요한 정보)

  <form action="#" method="post">
    <fieldset>
      <legend>로그인</legend>
      <p>ID : <input type="text"></p>
      <p>PW : <input type="password"></p>
    </fieldset>
  </form>

 

 

<input> type 속성

text 한 줄 글 입력 상자
maxlength 속성으로 최대 글자 수 제한
password 비밀번호 입력
입력된 내용은 *로 표시됨
search 검색 입력 상자
email  , tel  이메일, 전화번호 입력 상자
color 컬러 입력 상자
number 숫자 입력 상자 -> 범위 지정 가능 (min, max)
range 슬라이드바 -> 범위 지정 가능 (min, max)
radio 라디오 버튼
name 속성이 모두 동일하면 하나만 선택 가능
checked 속성으로 기본값 선택 가능
checkbox 체크박스 -> 다중 선택 가능
checked 속성으로 기본값 선택 가능
submit, reset, button 전송 버튼, 초기화 버튼, 범용 버튼
value 속성으로 버튼 속 텍스트 지정
image 이미지 버튼 (alt 필수)
file 첨부 파일 선택하기 버튼
hidden 사용자에게 노출할 필요가 없는 데이터를 지정
화면에 표시되지 않음

 

728x90
반응형

'Web > Frontend' 카테고리의 다른 글

DOM Node(API) 조작하기  (0) 2021.05.19
AJAX  (0) 2021.05.07
Event Handler  (0) 2021.05.07
DOM, querySelector  (0) 2021.05.07
[JS] window 객체 (setTimeout)  (0) 2021.05.07