<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>HTML/CSS 닥스</title>
    <link>https://htmlcss-docs.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 11 Jun 2026 04:44:00 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>닥스터</managingEditor>
    <image>
      <title>HTML/CSS 닥스</title>
      <url>https://tistory1.daumcdn.net/tistory/5932256/attach/3fc070f117584ed58b68ab997bfa1e86</url>
      <link>https://htmlcss-docs.tistory.com</link>
    </image>
    <item>
      <title>[번역] ARIA aria-label 속성</title>
      <link>https://htmlcss-docs.tistory.com/entry/aria-label</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label은 화면에 텍스트가 표시되지 않는 요소에 대한 텍스트 대안을 제공하는데 사용해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정의&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label은 WAI-ARIA 사양에 정의된 속성입니다. 이 사양은 기본 HTML을 확장하여 HTML 요소가 접근성 트리로 &quot;번역&quot;되는 방식을 변경할 수 있도록 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본적으로 HTML 요소는 텍스트 콘텐츠를 접근성 레이블로 사용합니다. 요소에 aria-label이 있는 경우 접근성 이름은 속성에 전달된 문자열이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691411312701&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;보내기&amp;lt;/button&amp;gt;
// 접근 가능한 이름 : 보내기

&amp;lt;button aria-label=&quot;이메일 보내기&quot;&amp;gt;보내기&amp;lt;/button&amp;gt;
// 접근 가능한 이름 : 이메일 보내기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용법&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML 요소에 aria-label을 추가하여 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691411377831&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button aria-label=&quot;메뉴&quot; class=&quot;burger&quot;&amp;gt;&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보이스오버는 이 버튼을 &quot;메뉴 버튼&quot;으로 읽습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label과 함께 사용할 수 있는 요소&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인터렉티브 요소&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;a (href 속성이 있는 경우)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;audio 및 video (controls 속성이 있는 경우)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;input, select, button, textarea 와 같은 요소&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;암시적 랜드마크 요소&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;header, footer, nav, main, aside, section, form 등&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;명시적 랜드마크 요소&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;role=&quot;navigation&quot; 인 요소 등&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위젯 역할 요소&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;role=&quot;dialog&quot; 또는 role=&quot;tooltip&quot; 이 있는 요소 (ARIA 1.1에는 27개의 위젯 역할이 있음)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;iframe 및 img 요소&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용 시점&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소의 용도를 텍스트로 표시하지 않고도 스크린 리더와 같은 보조 기술을 사용하는 사용자를 위해 대체 텍스트를 제공해야 하는 경우에 이 기능을 사용해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;라벨링 모범 사례&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스크린 리더가 이미 요소의 역할을 알려주므로 레이블에 &quot;버튼&quot;을 추가할 필요가 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691411984041&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 비추천 : &quot;보내기 버튼, 버튼&quot;
&amp;lt;button aria-label=&quot;보내기 버튼&quot;&amp;gt;...&amp;lt;/button&amp;gt;

// 추천 : &quot;보내기 버튼&quot;
&amp;lt;button aria-label=&quot;보내기&quot;&amp;gt;...&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아이콘 버튼&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.08.png&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/svvaa/btsqwXpfVCi/ZvHW5oxq9f2VRzCUtpRPtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/svvaa/btsqwXpfVCi/ZvHW5oxq9f2VRzCUtpRPtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/svvaa/btsqwXpfVCi/ZvHW5oxq9f2VRzCUtpRPtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsvvaa%2FbtsqwXpfVCi%2FZvHW5oxq9f2VRzCUtpRPtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;232&quot; height=&quot;182&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.08.png&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1691413194813&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button aria-label=&quot;닫기&quot;&amp;gt;
  &amp;lt;svg
    focusable=&quot;false&quot;
    aria-hidden=&quot;true&quot;
    viewBox=&quot;0 0 24 24&quot;
  &amp;gt;
    &amp;lt;path
      d=&quot;M19 6.41L17.59 5 12 10.59 6.41 5 5
         6.41 10.59 12 5 17.59 6.41 19 12
         13.41 17.59 19 19 17.59 13.41 12z&quot; /&amp;gt;
  &amp;lt;/svg&amp;gt;
&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 없는 input&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.20.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckxSVD/btsqwAOpsi3/h4emkTcLH5pG2igiKgZh6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckxSVD/btsqwAOpsi3/h4emkTcLH5pG2igiKgZh6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckxSVD/btsqwAOpsi3/h4emkTcLH5pG2igiKgZh6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckxSVD%2FbtsqwAOpsi3%2Fh4emkTcLH5pG2igiKgZh6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;112&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.20.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1691413230584&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input
  type=&quot;text&quot;
  name=&quot;name&quot;
  placeholder=&quot;What's your name?&quot;
  aria-label=&quot;Your name&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다중 네비게이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.43.png&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgd4Rq/btsqd4D9d1Y/pv3ZZUVsxPTnCts6Xkto80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgd4Rq/btsqd4D9d1Y/pv3ZZUVsxPTnCts6Xkto80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgd4Rq/btsqd4D9d1Y/pv3ZZUVsxPTnCts6Xkto80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdgd4Rq%2Fbtsqd4D9d1Y%2Fpv3ZZUVsxPTnCts6Xkto80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;329&quot; height=&quot;276&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.15.43.png&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1691413254179&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-label=&amp;rsquo;primary&amp;rsquo;&amp;gt;
  &amp;lt;ul&amp;gt;
    ...List on links here...
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;
&amp;lt;nav aria-label=&amp;rsquo;secondary&amp;rsquo;&amp;gt;
  &amp;lt;ul&amp;gt;
    ...List on links here...
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;region 랜드마크 구분하기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.16.50.png&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4GX9u/btsqj20wM5W/6vS2Tt2tB7hNdTESr1tCvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4GX9u/btsqj20wM5W/6vS2Tt2tB7hNdTESr1tCvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4GX9u/btsqj20wM5W/6vS2Tt2tB7hNdTESr1tCvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4GX9u%2Fbtsqj20wM5W%2F6vS2Tt2tB7hNdTESr1tCvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;185&quot; data-filename=&quot;스크린샷 2023-08-07 오후 9.16.50.png&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1691413267800&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;section aria-label=&quot;projects&quot;&amp;gt; 
  ...
&amp;lt;/section&amp;gt;
&amp;lt;section aria-label=&quot;team&quot;&amp;gt; 
  ...
&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비교&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label vs. aria-labelledby&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 텍스트가 화면에 표시되는 경우 aria-label 대신 aria-labelledby 를 사용해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691412461198&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 비추천 : 화면에 텍스트가 보일 때
// aria-label을 사용한다.
&amp;lt;nav aria-label=&quot;관련 콘텐츠&quot;&amp;gt;
  &amp;lt;h2&amp;gt;관련 콘텐츠&amp;lt;/h2&amp;gt;
  &amp;lt;ul&amp;gt;
    ... 
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;



// 추천 : 화면에 텍스트가 보일 때 
// aria-labelledby 를 사용한다.
&amp;lt;nav aria-labelledby=&quot;nav-title&quot;&amp;gt;
  &amp;lt;h2 id=&quot;nav-title&quot;&amp;gt;관련 콘텐츠&amp;lt;/h2&amp;gt;
  &amp;lt;ul&amp;gt;
   	...
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;요소에 aria-labelledby와 aria-label이 모두 있을 경우 대체되는 텍스트로 aria-labelledby 속성의 값이 사용됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label vs. title&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;title 속성은 마우스가 요소 위로 이동하면 툴팁으로 표시됩니다. 마우스를 사용하는 사용자에게는 유용할 수 있지만 키보드만 사용하는 사용자에게는 제공되지 않습니다. title 속성은 텍스트 대체 계산 알고리즘에 나열되어 있지만 일부 스크린 리더/브라우저 조합 (작성 당시에는&amp;nbsp; IE11 및 NVDA)에서는 지원되지 않을 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;간단히 말하자면, 추가 정보를 제공하기 위해 title 속성을 사용해야 하는 경우 aria-label 을 사용하거나 다른 대안 (예 : 툴팁과 같은 사용자에게 추가 정보 공개)을 고려하는 것이 더 나을 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적인 실수&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;과도한 사용&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소에 텍스트 콘텐츠가 있는 경우 중복되므로 aria-label을 추가할 필요가 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691412791122&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 비추천 : aria-label 과도한 사용
&amp;lt;button aria-label=&quot;보내기&quot;&amp;gt;보내기&amp;lt;/button&amp;gt;

// 추천 : 필요할 때만 사용
&amp;lt;button&amp;gt;보내기&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Src. -&amp;nbsp;&lt;a href=&quot;https://www.aditus.io/aria/aria-label/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.aditus.io/aria/aria-label/&lt;/a&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>aria</category>
      <category>aria-label</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/13</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/aria-label#entry13comment</comments>
      <pubDate>Mon, 7 Aug 2023 21:42:57 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 7. 캐러셀</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IH1gw/btskS5Aosve/kt64cN2BKnRxIBs1pEV2dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IH1gw/btskS5Aosve/kt64cN2BKnRxIBs1pEV2dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IH1gw/btskS5Aosve/kt64cN2BKnRxIBs1pEV2dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIH1gw%2FbtskS5Aosve%2Fkt64cN2BKnRxIBs1pEV2dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;강력한 구조와 사용자 제어 기능을 제공하여 접근 가능한 캐러셀 위젯을 구현하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;구조&lt;/b&gt; : 캐러셀에 시맨틱 구조를 사용하여 보조 기술의 적절한 기능을 지원합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;기능&lt;/b&gt; : 캐러셀 항목을 표시하고 알리는 기능을 추가합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;애니메이션&lt;/b&gt; : 항목 간에 전환 애니메이션을 추가하고 사용자가 중단했다가 다시 시작할 수 있도록 하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스타일링&lt;/b&gt; : 캐러셀의 스타일을 지정하여 모든 사람이 쉽게 사용할 수 있고 읽을 수 있도록 하세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 캐러셀의 전체 &lt;a href=&quot;https://www.w3.org/WAI/tutorials/carousels/working-example/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;작동 예제&lt;/a&gt;와 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels#%EC%A0%84%EC%B2%B4%20%EC%BD%94%EB%93%9C-1&quot;&gt;전체 코드&lt;/a&gt;도 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀이란 무엇인가요?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀은 한 번에 하나씩 항목 모음을 표시합니다. &quot;슬라이드쇼&quot; 및 &quot;슬라이더&quot;라고도 합니다. 캐러셀의 일반적인 용도로는 뉴스 헤드라인 스크롤, 홈 페이지의 추천 기사, 이미지 갤러리 등이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;무엇이 접근성 있는 캐러셀을 만드나요?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 이동이 너무 빠르거나 산만하여 텍스트를 읽기 어려울 수 있으므로 사용자가 캐러셀 이동을 일시 중지할 수 있어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 항목 간 이동을 포함한 모든 기능은 키보드로 작동할 수 있어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 항목에 대한 변경 사항은 스크린 리더 사용자를 포함한 모든 사용자에게 전달되어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;키보드 위치('포커스')는 합리적이고 이해하기 쉬운 방식으로 관리되어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;캐러셀은 콘텐츠를 찾기 어려울 수 있기 때문에 사용성 측면에서 이의를 제기할 수 있습니다. 접근성을 보장하면 사용성도 향상될 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이것이 왜 중요한가요?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 캐러셀은 눈에 잘 띄는 위치에 있으며 탐색 기능을 제공하거나 페이지 콘텐츠를 표시하는 데 사용됩니다. 접근성 있는 캐러셀은 다음과 같은 많은 웹사이트 사용자에게 필수적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;키보드 탐색 및 음성 입력 소프트웨어를 사용하는 사용자&lt;/b&gt;는 개별 항목 사이를 탐색할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스크린 리더 사용자&lt;/b&gt;는 현재 표시되는 항목과 항목 사이를 탐색하는 방법을 이해할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;움직임에 주의가 산만해지는 사용자&lt;/b&gt;는 애니메이션을 일시 중지할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;읽는 데 시간이 더 필요한 사용자&lt;/b&gt;는 애니메이션을 일시 중지하여 캐러셀 콘텐츠를 읽고 이해할 수 있는 충분한 시간을 확보할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 구조&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구조적 마크업을 사용하면 캐러셀의 콘텐츠를 다양한 상황에서 사용할 수 있습니다. 예를 들어, 적절한 마크업이 적용된 캐러셀은 모바일 디바이스에서 기사 목록으로 표시될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반 구조&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;콘텐츠 항목의 모음인 캐러셀은 일반적으로 &amp;lt;ul&amp;gt; 및 &amp;lt;li&amp;gt;를 사용하여 정렬되지 않은 목록으로 표시하는 것이 가장 좋습니다. 컨텍스트에 따라 다른 요소를 사용할 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 캐러셀은 사용자가 캐러셀을 쉽게 찾을 수 있도록 레이블이 지정된 영역으로 둘러싸야 합니다. 다음 예시에서는 &amp;lt;section&amp;gt; 요소를 사용하여 영역을 정의하고 aria-labelledby를 사용하여 레이블이 포함된 제목을 정의합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%ED%8E%98%EC%9D%B4%EC%A7%80%20%EC%98%81%EC%97%AD%20(Page%20Regions)-1&quot;&gt;페이지 영역&lt;/a&gt; 및 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%EC%98%81%EC%97%AD%20%EB%9D%BC%EB%B2%A8%EB%A7%81%20(Labeling%20Regions)-1&quot;&gt;레이블&lt;/a&gt;에 대한 자세한 내용은 페이지 구조 자습서를 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687407038779&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;section class=&quot;carousel&quot; aria-labelledby=&quot;carouselheading&quot;&amp;gt;
  &amp;lt;h3 id=&quot;carouselheading&quot; class=&quot;visuallyhidden&quot;&amp;gt;Recent news&amp;lt;/h3&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li class=&quot;slide&quot;&amp;gt;&amp;hellip;&amp;lt;/li&amp;gt;
    &amp;lt;li class=&quot;slide&quot;&amp;gt;&amp;hellip;&amp;lt;/li&amp;gt;
    &amp;lt;li class=&quot;slide&quot;&amp;gt;&amp;hellip;&amp;lt;/li&amp;gt;
    &amp;hellip;
  &amp;lt;/ul&amp;gt;
&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 코드에 대한 &lt;a href=&quot;https://www.w3.org/WAI/tutorials/carousels/working-example/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;작업 데모 예제&lt;/a&gt;를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 항목&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀은 일련의 이미지를 표시하는 갤러리로 자주 사용됩니다. 그러나 티저, 기사 또는 웹 페이지의 전체 섹션과 같은 보다 복잡한 콘텐츠도 캐러셀 안에 표시할 수 있습니다. 모든 경우에 적절한 마크업을 사용하여 콘텐츠의 구조와 의미가 명확하게 전달되도록 하세요. 이러한 마크업에는 제목, 섹션, 목록, 기사 및 필요에 따라 기타 요소가 포함될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 첫 번째 예는 이미지가 콘텐츠로 포함된 캐러셀 항목을 보여줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687407112787&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;hellip;
&amp;lt;li class=&quot;slide&quot;&amp;gt;
  &amp;lt;img src=&quot;teddy1.jpg&quot; alt=&quot;Space Teddy&quot;&amp;gt;
&amp;lt;/li&amp;gt;
&amp;hellip;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목과 단락이 포함된 이 article의 예는 더 복잡한 콘텐츠를 어떻게 사용할 수 있는지 보여줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687407156601&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;hellip;
&amp;lt;li class=&quot;slide&quot; style=&quot;background-image: url('teddy1.jpg');&quot;&amp;gt;
  &amp;lt;article&amp;gt;
    &amp;lt;h4&amp;gt;Space Teddy production reaches all-time high&amp;lt;/h4&amp;gt;
    &amp;lt;p&amp;gt;Teddies in Space Inc. has released outstanding numbers for the last solar year. The production of Space Teddies increased by 17%. The new version, scheduled to be released in a few months, will likely be the biggest Space Teddy release ever.&amp;lt;/p&amp;gt;
    &amp;hellip;
  &amp;lt;/article&amp;gt;
&amp;lt;/li&amp;gt;
&amp;hellip;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀 항목을 선택하고 캐러셀 항목의 변경 사항을 사용자에게 알리는 기능을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이전 및 다음 버튼 추가&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 항목 간에 전환할 수 있는 버튼을 제공하세요. &amp;lt;button&amp;gt; 요소를 사용하여 의미론적 의미, 보조 기술 지원 및 일관된 키보드 동작을 제공합니다. 버튼은 JavaScript를 사용할 수 있는 경우에만 작동하므로 JavaScript를 사용하여 버튼을 생성하고 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687407225375&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var ctrls = document.createElement('ul');

ctrls.className = 'controls';
ctrls.innerHTML = '&amp;lt;li&amp;gt;' +
    '&amp;lt;button type=&quot;button&quot; class=&quot;btn-prev&quot;&amp;gt;' +
      '&amp;lt;img src=&quot;img/chevron-left.png&quot; alt=&quot;Previous Item&quot;&amp;gt;' +
    '&amp;lt;/button&amp;gt;' +
  '&amp;lt;/li&amp;gt;' +
  '&amp;lt;li&amp;gt;' +
    '&amp;lt;button type=&quot;button&quot; class=&quot;btn-next&quot;&amp;gt;' +
      '&amp;lt;img src=&quot;img/chevron-right.png&quot; alt=&quot;Next Item&quot;&amp;gt;' +
    '&amp;lt;/button&amp;gt;' +
  '&amp;lt;/li&amp;gt;';

ctrls.querySelector('.btn-prev').addEventListener('click', function(){
  prevSlide(true);
});

ctrls.querySelector('.btn-next').addEventListener('click', function(){
  nextSlide(true);
});

carousel.appendChild(ctrls);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 코드에 대한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/carousels/working-example/&quot;&gt;작업 데모 예제&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;현재 항목 알리기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/#live_region_roles&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WAI-ARIA live region&lt;/a&gt;을 사용하여 스크린 리더 사용자에게 현재 어떤 항목이 표시되는지 알립니다. 이 예에서는 시각적으로 숨겨진 &quot;polite&quot; 라이브 영역이 사용되며 캐러셀이 로드될 때 캐러셀에 추가됩니다. 그런 다음 이전 또는 다음 버튼을 클릭하면 &quot;항목 x의 y&quot;(x는 현재 항목 번호, y는 항목 수)라는 텍스트가 이 live region으로 설정됩니다. 지원되는 스크린 리더는 이 텍스트를 알립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 키보드 초점을 계속 제어할 수 있도록 합니다. 캐러셀이 자동으로 진행될 때 사용자가 페이지의 현재 위치에서 멀어지지 않도록 해야 합니다. 또한 이전 또는 다음 버튼을 사용할 때 키보드 초점을 이동하지 마십시오. 초점을 이동하면 사용자가 슬라이드를 앞뒤로 탐색하기가 더 어려워집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #292c32; text-align: start;&quot;&gt;WAI-ARIA에 대한 자세한 내용은 &lt;a href=&quot;https://www.w3.org/WAI/standards-guidelines/aria/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WAI-ARIA 개요&lt;/a&gt;, &lt;a href=&quot;https://www.w3.org/WAI/ARIA/apg/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WAI-ARIA 저작 관행&lt;/a&gt; 및 &lt;a href=&quot;https://www.w3.org/TR/wai-aria-1.1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;사양&lt;/a&gt;에서 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드 : 캐러셀에 live region 추가&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687417546574&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var liveregion = document.createElement('div');
liveregion.setAttribute('aria-live', 'polite');
liveregion.setAttribute('aria-atomic', 'true');
liveregion.setAttribute('class', 'liveregion visuallyhidden');
carousel.appendChild(liveregion);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드 : live region의 텍스트를 변경하여 해당 텍스트가 알려지도록 함&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687417577950&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if (announceItem) {
  carousel.querySelector('.liveregion').textContent = 'Item ' + (new_current + 1) + ' of ' + slides.length;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;네비게이션 버튼 추가&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀의 각 항목에 대한 버튼을 표시하고 현재 항목을 강조 표시합니다. 이렇게 하면 사용자가 캐러셀 콘텐츠의 개요와 시퀀스 내 위치를 파악할 수 있으며 원하는 항목으로 바로 이동할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예의 버튼이 있는 목록은 JavaScript를 사용하여 추가되었으며, 버튼에는 캐러셀 항목에 해당하는 번호가 있습니다. 버튼에는 해당 캐러셀 항목과 일치하는 번호가 지정되어 있습니다. 활성 캐러셀 항목의 버튼은 시각적으로 강조 표시되거나 시각적으로 숨겨진 텍스트(스크린 리더의 경우)를 사용하여 강조 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;활성 캐러셀 항목을 접근하기 쉬운 방식으로 강조 표시하는 방법에 대한 자세한 내용은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels#%EC%8A%A4%ED%83%80%EC%9D%BC%EB%A7%81-1&quot;&gt;캐러셀 스타일링&lt;/a&gt; 항목을 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687417659466&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul class=&quot;slidenav&quot;&amp;gt;
  &amp;lt;li&amp;gt;
    &amp;lt;button class=&quot;current&quot; data-slide=&quot;0&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; 1
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;(Current Slide)&amp;lt;/span&amp;gt;
    &amp;lt;/button&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;
    &amp;lt;button data-slide=&quot;1&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; 2
    &amp;lt;/button&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;
    &amp;lt;button data-slide=&quot;2&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; 3
    &amp;lt;/button&amp;gt;
  &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 4.46.18.png&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhwdEu/btskVKqlMji/QLkNIMGGaSEkLRaPyEvPEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhwdEu/btskVKqlMji/QLkNIMGGaSEkLRaPyEvPEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhwdEu/btskVKqlMji/QLkNIMGGaSEkLRaPyEvPEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhwdEu%2FbtskVKqlMji%2FQLkNIMGGaSEkLRaPyEvPEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;381&quot; height=&quot;73&quot; data-filename=&quot;스크린샷 2023-06-22 오후 4.46.18.png&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;선택한 캐러셀 항목에 초점 맞추기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 이러한 탐색 버튼으로 항목을 선택하면 선택한 항목에 초점이 설정되어야 합니다. 이 경우 변경 또는 전환 후 현재 클래스가 설정된 &amp;lt;li&amp;gt; 요소에 초점을 설정해야 합니다. 이렇게 하면 키보드 및 보조 기술 사용자가 더 쉽게 상호 작용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본적으로 &amp;lt;li&amp;gt; 요소는 포커스를 받을 수 없습니다. tabindex 속성을 -1로 설정하면 자바스크립트를 통해 포커스를 받을 수 있도록 요소가 활성화됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애니메이션&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자에게 캐러셀의 애니메이션을 제어할 수 있는 기능을 제공하세요. 애니메이션 일시 중지는 움직임이 산만하거나 읽는 데 더 많은 시간이 필요한 사람들에게 필수적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;재생/중지 버튼 추가&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 애니메이션을 중지하고 다시 시작할 수 있는 버튼을 제공하세요. 아래 예는 이러한 버튼을 마크업하는 방법을 보여줍니다. 애니메이션이 현재 실행 중인지 여부에 따라 버튼 레이블과 버튼의 기능이 변경됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드 : 애니메이션이 실행될 때&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687417837593&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button data-action=&quot;stop&quot;&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Stop Animation &amp;lt;/span&amp;gt;￭&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드 : 애니메이션이 정지될 때&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687417872242&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button data-action=&quot;start&quot;&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Start Animation &amp;lt;/span&amp;gt;▶&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 코드에 대한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/carousels/working-example/&quot;&gt;작업 데모 예제&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자바스크립트는 &amp;lt;button&amp;gt; 요소의 값과 해당 속성만 대체합니다. 버튼 전체를 바꾸면 키보드 포커스가 손실될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마우스 hover 및 키보드 포커스 시 일시 중지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마우스 포인터가 캐러셀 위에 있거나 키보드 포커스를 받으면 캐러셀 애니메이션을 일시 중지합니다. 마우스 커서 일시정지는 콘텐츠를 읽는 데 시간이 더 필요한 사용자에게 유용하며 캐러셀의 링크를 더 쉽게 클릭할 수 있습니다. 키보드 사용자는 캐러셀이 일시 중지되어도 위치를 잃지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687418040919&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;carousel.addEventListener('mouseenter', suspendAnimation);
carousel.addEventListener('mouseleave', startAnimation);

carousel.addEventListener('focusin',
  function(event) {
    if (!hasClass(event.target, 'slide')) {
      suspendAnimation();
    }
  }
);
carousel.addEventListener('focusout',
  function(event) {
    if (!hasClass(event.target, 'slide')) {
      startAnimation();
    }
  }
);&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;br /&gt;focusin 및 focusout 이벤트는 &lt;a href=&quot;https://www.w3.org/TR/DOM-Level-3-Events/&quot;&gt;W3C 문서 객체 모델(DOM) 레벨 3 이벤트 사양(작업 초안)&lt;/a&gt;에 정의되어 있으며 많은 브라우저에서 구현되어 있습니다. 이 튜토리얼을 게시하는 시점에 Firefox에는 간단한 폴리필이 필요합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보조 기술에서 전환되는 요소 숨기기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전환 중에는 현재 항목과 다음 항목이 표시됩니다. 이는 보조 기술에서 현재 항목이 사라진 상태에서 두 항목을 사용할 수 있음을 의미하므로 스크린 리더 사용자에게 혼란을 줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예제에서는 활성화 중인 항목에 in-transition 클래스를 가져와 표시합니다. 보조 기술에서 항목을 숨기려면 aria-hidden 속성을 true로 설정합니다. 전환이 완료되면 aria-hidden 속성이 제거됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687418331205&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;slides[new_next].className = 'next slide'
  + ((transition == 'next') ? ' in-transition' : '');
slides[new_next].setAttribute('aria-hidden', 'true');

slides[new_prev].className = 'prev slide'
  + ((transition == 'prev') ? ' in-transition' : '');
slides[new_prev].setAttribute('aria-hidden', 'true');

slides[new_current].className = 'current slide';
slides[new_current].removeAttribute('aria-hidden');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스타일링&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;버튼 크기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;적절한 크기의 버튼과 링크를 사용하고 주변에 공백을 두어 손재주가 약한 사람도 캐러셀을 더 쉽게 사용할 수 있도록 하세요. 이는 모바일 디바이스 등 터치스크린을 사용하는 사람들에게도 유용합니다. 텍스트 블록에 인라인이 아닌 버튼과 링크는 최소 44&amp;times;44 CSS 픽셀이어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;명도대비&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 4.50.22.png&quot; data-origin-width=&quot;182&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/StBeu/btskZYt6hYo/wD8OBjIsFmILvn0hSfZYjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/StBeu/btskZYt6hYo/wD8OBjIsFmILvn0hSfZYjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/StBeu/btskZYt6hYo/wD8OBjIsFmILvn0hSfZYjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FStBeu%2FbtskZYt6hYo%2FwD8OBjIsFmILvn0hSfZYjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;182&quot; height=&quot;127&quot; data-filename=&quot;스크린샷 2023-06-22 오후 4.50.22.png&quot; data-origin-width=&quot;182&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트, 링크 및 버튼의 전경과 배경의 명도대비가 충분한지 확인합니다. 텍스트나 버튼이 이미지 위에 배치된 경우 이는 어려울 수 있습니다. 이 경우 (반)불투명한 배경색을 사용하면 사용된 이미지에 관계없이 대비를 유지하는데 도움이 될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;명도대비 요구 사항에 대한 자세한 내용은 &lt;a href=&quot;https://www.w3.org/WAI/tips/designing/#provide-sufficient-contrast-between-foreground-and-background&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;전경과 배경 간에 충분한 명도대비 제공&lt;/a&gt;을 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;버튼 상태 표시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캐러셀에 추가된 탐색 버튼은 일반적으로 크기가 작기 때문에 적절한 이름과 레이블 외에도 색상과 모양으로 버튼의 상태를 표시하는 것이 중요합니다. 이렇게 하면 사람들이 버튼과 현재 상태를 쉽게 구분할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서는 현재 표시되지 않은 항목과 연결된 버튼에 채워진 사각형이 사용됩니다. 표시된 항목의 버튼은 모서리가 둥글고 색상이 반전되어 있습니다. 사용자가 마우스를 사용하여 이러한 버튼 위로 마우스를 가져가거나 키보드를 사용하여 초점을 맞추면 테두리가 점선으로 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.21.14.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/euv2a5/btsk0EaWK1f/rzufagNCDzrVutKnr3nlPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/euv2a5/btsk0EaWK1f/rzufagNCDzrVutKnr3nlPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/euv2a5/btsk0EaWK1f/rzufagNCDzrVutKnr3nlPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feuv2a5%2Fbtsk0EaWK1f%2FrzufagNCDzrVutKnr3nlPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;73&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.21.14.png&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 코드에 대한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/carousels/working-example/&quot;&gt;작업 데모 예제&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;전체 코드&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1687418532599&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* Focusin/out event polyfill (for Firefox) by nuxodin
 * Source: https://gist.github.com/nuxodin/9250e56a3ce6c0446efa
 */

!function(){
  var w = window,
  d = w.document;

  if( w.onfocusin === undefined ){
    d.addEventListener('focus' ,addPolyfill ,true);
    d.addEventListener('blur' ,addPolyfill ,true);
    d.addEventListener('focusin' ,removePolyfill ,true);
    d.addEventListener('focusout' ,removePolyfill ,true);
  }
  function addPolyfill(e){
    var type = e.type === 'focus' ? 'focusin' : 'focusout';
    var event = new CustomEvent(type, { bubbles:true, cancelable:false });
    event.c1Generated = true;
    e.target.dispatchEvent( event );
  }
  function removePolyfill(e){
if(!e.c1Generated){ // focus after focusin, so chrome will the first time trigger two times focusin
  d.removeEventListener('focus' ,addPolyfill ,true);
  d.removeEventListener('blur' ,addPolyfill ,true);
  d.removeEventListener('focusin' ,removePolyfill ,true);
  d.removeEventListener('focusout' ,removePolyfill ,true);
}
setTimeout(function(){
  d.removeEventListener('focusin' ,removePolyfill ,true);
  d.removeEventListener('focusout' ,removePolyfill ,true);
});
}
}();

/*
   Carousel Prototype
   Eric Eggert for W3C
*/

var myCarousel = (function() {

  &quot;use strict&quot;;

  // Initial variables
  var carousel, slides, index, slidenav, settings, timer, setFocus, animationSuspended;


  // Helper function: Iterates over an array of elements
  function forEachElement(elements, fn) {
    for (var i = 0; i &amp;lt; elements.length; i++)
      fn(elements[i], i);
  }

  // Helper function: Remove Class
  function removeClass(el, className) {
    if (el.classList) {
      el.classList.remove(className);
    } else {
      el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
    }
  }

  // Helper function: Test if element has a specific class
  function hasClass(el, className) {
    if (el.classList) {
      return el.classList.contains(className);
    } else {
      return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
    }
  }

  // Initialization for the carousel
  // Argument: set = an object of settings
  // Possible settings:
  // id &amp;lt;string&amp;gt; ID of the carousel wrapper element (required).
  // slidenav &amp;lt;bool&amp;gt; If true, a list of slides is shown.
  // animate &amp;lt;bool&amp;gt; If true, the slides can be animated.
  // startAnimated &amp;lt;bool&amp;gt; If true, the animation begins
  //                        immediately.
  //                      If false, the animation needs
  //                        to be initiated by clicking
  //                        the play button.
  function init(set) {

    // Make settings available to all functions
    settings = set;

    // Select the element and the individual slides
    carousel = document.getElementById(settings.id);
    slides = carousel.querySelectorAll('.slide');

    carousel.className = 'active carousel';


    // Create unordered list for controls, and attach click events to previous and next slide
    var ctrls = document.createElement('ul');

    ctrls.className = 'controls';
    ctrls.innerHTML = '&amp;lt;li&amp;gt;' +
        '&amp;lt;button type=&quot;button&quot; class=&quot;btn-prev&quot;&amp;gt;&amp;lt;img src=&quot;chevron-left.png&quot; alt=&quot;Previous Item&quot;&amp;gt;&amp;lt;/button&amp;gt;' +
      '&amp;lt;/li&amp;gt;' +
      '&amp;lt;li&amp;gt;' +
        '&amp;lt;button type=&quot;button&quot; class=&quot;btn-next&quot;&amp;gt;&amp;lt;img src=&quot;chevron-right.png&quot; alt=&quot;Next Item&quot;&amp;gt;&amp;lt;/button&amp;gt;' +
      '&amp;lt;/li&amp;gt;';

    ctrls.querySelector('.btn-prev')
      .addEventListener('click', function () {
        prevSlide(true);
      });
    ctrls.querySelector('.btn-next')
      .addEventListener('click', function () {
        nextSlide(true);
      });

    carousel.appendChild(ctrls);

    // If the carousel is animated or a slide navigation is requested in the settings, another unordered list that contains those elements is added. (Note that you cannot supress the navigation when it is animated.)
    if (settings.slidenav || settings.animate) {
      slidenav = document.createElement('ul');

      slidenav.className = 'slidenav';

      if (settings.animate) {
        var li = document.createElement('li');

        if (settings.startAnimated) {
          li.innerHTML = '&amp;lt;button data-action=&quot;stop&quot;&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Stop Animation &amp;lt;/span&amp;gt;￭&amp;lt;/button&amp;gt;';
        } else {
          li.innerHTML = '&amp;lt;button data-action=&quot;start&quot;&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Start Animation &amp;lt;/span&amp;gt;▶&amp;lt;/button&amp;gt;';
        }

        slidenav.appendChild(li);
      }

      if (settings.slidenav) {
        forEachElement(slides, function(el, i){
          var li = document.createElement('li');
          var klass = (i===0) ? 'class=&quot;current&quot; ' : '';
          var kurrent = (i===0) ? ' &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;(Current Item)&amp;lt;/span&amp;gt;' : '';

          li.innerHTML = '&amp;lt;button '+ klass +'data-slide=&quot;' + i + '&quot;&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; ' + (i+1) + kurrent + '&amp;lt;/button&amp;gt;';
          slidenav.appendChild(li);
        });
      }

      slidenav.addEventListener('click', function(event) {
        var button = event.target;
        if (button.localName == 'button') {
          if (button.getAttribute('data-slide')) {
            stopAnimation();
            setSlides(button.getAttribute('data-slide'), true);
          } else if (button.getAttribute('data-action') == &quot;stop&quot;) {
            stopAnimation();
          } else if (button.getAttribute('data-action') == &quot;start&quot;) {
            startAnimation();
          }
        }
      }, true);

      carousel.className = 'active carousel with-slidenav';
      carousel.appendChild(slidenav);
    }

    // Add a live region to announce the slide number when using the previous/next buttons
    var liveregion = document.createElement('div');
    liveregion.setAttribute('aria-live', 'polite');
    liveregion.setAttribute('aria-atomic', 'true');
    liveregion.setAttribute('class', 'liveregion visuallyhidden');
    carousel.appendChild(liveregion);

    // After the slide transitioned, remove the in-transition class, if focus should be set, set the tabindex attribute to -1 and focus the slide.
    slides[0].parentNode.addEventListener('transitionend', function (event) {
      var slide = event.target;
      removeClass(slide, 'in-transition');
      if (hasClass(slide, 'current'))  {
        if(setFocus) {
          slide.setAttribute('tabindex', '-1');
          slide.focus();
          setFocus = false;
        }
      }
    });

      // When the mouse enters the carousel, suspend the animation.
      carousel.addEventListener('mouseenter', suspendAnimation);

      // When the mouse leaves the carousel, and the animation is suspended, start the animation.
      carousel.addEventListener('mouseleave', function(event) {
        if (animationSuspended) {
          startAnimation();
        }
      });

      // When the focus enters the carousel, suspend the animation
      carousel.addEventListener('focusin', function(event) {
        if (!hasClass(event.target, 'slide')) {
          suspendAnimation();
        }
      });

      // When the focus leaves the carousel, and the animation is suspended, start the animation
      carousel.addEventListener('focusout', function(event) {
        if (!hasClass(event.target, 'slide') &amp;amp;&amp;amp; animationSuspended) {
          startAnimation();
        }
      });

    // Set the index (=current slide) to 0 &amp;ndash; the first slide
    index = 0;
    setSlides(index);

    // If the carousel is animated, advance to the
    // next slide after 5s
    if (settings.startAnimated) {
      timer = setTimeout(nextSlide, 5000);
    }
  }

  // Function to set a slide the current slide
  function setSlides(new_current, setFocusHere, transition, announceItemHere) {
    // Focus, transition and announce Item are optional parameters.
    // focus denotes if the focus should be set after the
    // carousel advanced to slide number new_current.
    // transition denotes if the transition is going into the
    // next or previous direction.
    // If announceItem is set to true, the live region&amp;rsquo;s text is changed (and announced)
    // Here defaults are set:

    setFocus = typeof setFocusHere !== 'undefined' ? setFocusHere : false;
    transition = typeof transition !== 'undefined' ? transition : 'none';
    announceItem = typeof announceItemHere !== 'undefined' ? announceItemHere : false;

    new_current = parseFloat(new_current);

    var length = slides.length;
    var new_next = new_current+1;
    var new_prev = new_current-1;

    // If the next slide number is equal to the length,
    // the next slide should be the first one of the slides.
    // If the previous slide number is less than 0.
    // the previous slide is the last of the slides.
    if(new_next === length) {
      new_next = 0;
    } else if(new_prev &amp;lt; 0) {
      new_prev = length-1;
    }

    // Reset slide classes
    for (var i = slides.length - 1; i &amp;gt;= 0; i--) {
      slides[i].className = &quot;slide&quot;;
    }

    // Add classes to the previous, next and current slide
    slides[new_next].className = 'next slide' + ((transition == 'next') ? ' in-transition' : '');
    slides[new_next].setAttribute('aria-hidden', 'true');

    slides[new_prev].className = 'prev slide' + ((transition == 'prev') ? ' in-transition' : '');
    slides[new_prev].setAttribute('aria-hidden', 'true');

    slides[new_current].className = 'current slide';
    slides[new_current].removeAttribute('aria-hidden');

    // Update the text in the live region which is then announced by screen readers.
    if (announceItem) {
      carousel.querySelector('.liveregion').textContent = 'Item ' + (new_current + 1) + ' of ' + slides.length;
    }

    // Update the buttons in the slider navigation to match the currently displayed  item
    if(settings.slidenav) {
      var buttons = carousel.querySelectorAll('.slidenav button[data-slide]');
      for (var j = buttons.length - 1; j &amp;gt;= 0; j--) {
        buttons[j].className = '';
        buttons[j].innerHTML = '&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; ' + (j+1);
      }
      buttons[new_current].className = &quot;current&quot;;
      buttons[new_current].innerHTML = '&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;News&amp;lt;/span&amp;gt; ' + (new_current+1) + ' &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;(Current Item)&amp;lt;/span&amp;gt;';
    }

    // Set the global index to the new current value
    index = new_current;

  }

  // Function to advance to the next slide
  function nextSlide(announceItem) {
    announceItem = typeof announceItem !== 'undefined' ? announceItem : false;

    var length = slides.length,
    new_current = index + 1;

    if(new_current === length) {
      new_current = 0;
    }

    // If we advance to the next slide, the previous needs to be
    // visible to the user, so the third parameter is 'prev', not
    // next.
    setSlides(new_current, false, 'prev', announceItem);

    // If the carousel is animated, advance to the next
    // slide after 5s
    if (settings.animate) {
      timer = setTimeout(nextSlide, 5000);
    }

  }

  // Function to advance to the previous slide
  function prevSlide(announceItem) {
    announceItem = typeof announceItem !== 'undefined' ? announceItem : false;

    var length = slides.length,
    new_current = index - 1;

    // If we are already on the first slide, show the last slide instead.
    if(new_current &amp;lt; 0) {
      new_current = length-1;
    }

    // If we advance to the previous slide, the next needs to be
    // visible to the user, so the third parameter is 'next', not
    // prev.
    setSlides(new_current, false, 'next', announceItem);

  }

  // Function to stop the animation
  function stopAnimation() {
    clearTimeout(timer);
    settings.animate = false;
    animationSuspended = false;
    _this = carousel.querySelector('[data-action]');
    _this.innerHTML = '&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Start Animation &amp;lt;/span&amp;gt;▶';
    _this.setAttribute('data-action', 'start');
  }

  // Function to start the animation
  function startAnimation() {
    settings.animate = true;
    animationSuspended = false;
    timer = setTimeout(nextSlide, 5000);
    _this = carousel.querySelector('[data-action]');
    _this.innerHTML = '&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Stop Animation &amp;lt;/span&amp;gt;￭';
    _this.setAttribute('data-action', 'stop');
  }

  // Function to suspend the animation
  function suspendAnimation() {
    if(settings.animate) {
      clearTimeout(timer);
      settings.animate = false;
      animationSuspended = true;
    }
  }

  // Making some functions public
  return {
    init:init,
    next:nextSlide,
    prev:prevSlide,
    goto:setSlides,
    stop:stopAnimation,
    start:startAnimation
  };
});

var carousel = new myCarousel();
carousel.init({
  id: 'carousel',
  slidenav: true,
  animate: true,
  startAnimated: true
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 글은&amp;nbsp;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/10</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels#entry10comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:18:06 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 6. 폼</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pKncU/btskXOLvT40/O8sE3AQ6stBXfzYjKUEqOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pKncU/btskXOLvT40/O8sE3AQ6stBXfzYjKUEqOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pKncU/btskXOLvT40/O8sE3AQ6stBXfzYjKUEqOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpKncU%2FbtskXOLvT40%2FO8sE3AQ6stBXfzYjKUEqOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼은 일반적으로 웹사이트와 웹 애플리케이션에서 사용자 상호 작용을 제공하는 데 사용됩니다. 예를 들어 로그인, 등록, 댓글 작성, 구매 등이 이에 해당합니다. 이 튜토리얼에서는 접근성이 높은 폼 양식을 만드는 방법을 보여줍니다. 처리되는 폼이 클라이언트 측이든 서버 측이든 모든 양식에 동일한 개념이 적용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기술적인 고려 사항 외에도 사용자는 일반적으로 간단하고 짧은 폼을 선호합니다. 사용자에게 거래 또는 프로세스를 완료하는 데 필요한 최소한의 정보만 입력하도록 요청하세요. 관련성이 없거나 과도한 데이터를 요청하면 사용자가 폼 작성을 포기할 가능성이 높습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;레이블 컨트롤 :&lt;/b&gt; &amp;lt;label&amp;gt; 요소를 사용하고 특정한 경우에는 각 폼 컨트롤을 식별하기 위해 다른 메커니즘 (예: WAI-ARIA, title 속성 등)을 사용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;컨트롤 그룹화 :&lt;/b&gt; &amp;lt;fieldset&amp;gt; 및 &amp;lt;legend&amp;gt; 요소를 사용하여 관련 폼 컨트롤을 그룹화하고 연결합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;폼 지침 :&lt;/b&gt; 사용자가 폼 및 개별 폼 컨트롤을 완료하는 방법을 이해하는 데 도움이 되는 지침을 제공합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;입력 유효성 검사 :&lt;/b&gt; 사용자가 제공한 입력의 유효성을 검사하고 변경 사항을 실행 취소하고 데이터 입력을 확인할 수 있는 옵션을 제공합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;사용자 알림 :&lt;/b&gt; 사용자에게 성공적인 작업 완료 및 오류에 대해 알리고 실수를 수정하는 데 도움이 되는 지침을 제공합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;여러 페이지로 구성된 폼 :&lt;/b&gt; 긴 폼 입력을 일련의 논리적 단계 또는 단계를 구성하는 여러 개의 작은 폼으로 나누고 사용자에게 진행 단계를 알립니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;사용자 지정 컨트롤 :&lt;/b&gt; 폼 요소에 스타일을 적용하고 기타 점진적 기능 향상 기법을 사용하여 사용자 지정 컨트롤을 제공합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시간 제한에 대한 참고 사항&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하면 사용자가 자신의 속도에 맞춰 폼을 작성할 수 있도록 폼에 시간 제한을 두지 않아야 합니다. 예를 들어, 보안상의 이유로 시간 제한을 적용해야 하는 경우에는 사용자가 시간 제한을 끄거나 연장할 수 있는 옵션을 제공해야 합니다. 시간 제한이 경매나 게임과 같은 실시간 이벤트로 인한 것이거나 폼을 작성하는 데 걸리는 시간이 유효한 제출에 필수적인 경우에는 이 제한이 적용되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이것이 왜 중요한가요?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼은 시각적 혹은 인지적으로 복잡하고 사용하기 어려울 수 있습니다. 접근성 있는 폼은 장애인을 포함한 모든 사람이 더 쉽게 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼을 접근 가능하게 만들면 레이아웃 구조, 지침 및 피드백이 개선되므로 &lt;b&gt;인지 장애가 있는 사람&lt;/b&gt;도 양식과 폼 작성 방법을 더 잘 이해할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;음성 입력을 사용하는 사용자&lt;/b&gt;는 음성 명령을 통해 레이블을 사용하여 컨트롤을 활성화하고 완료해야 하는 필드로 초점을 이동할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특히 라디오 버튼이나 확인란과 같은 작은 컨트롤의 경우, &lt;b&gt;손놀림에 불편함이 있는 사람&lt;/b&gt;들은 레이블을 포함한 클릭 가능한 큰 영역이 유용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스크린 리더 사용자&lt;/b&gt;들은 폼 컨트롤이 label, fieldset 및 기타 구조적 요소와 연결되어 있기 때문에 더 쉽게 식별하고 이해할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 컨트롤&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트 필드, 체크박스, 라디오 버튼, 드롭다운 메뉴 등 모든 폼 컨트롤을 식별하기 위해 레이블을 제공합니다. &lt;br /&gt;대부분의 경우 &amp;lt;label&amp;gt; 요소를 사용하여 이 작업을 수행합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블은 폼 컨트롤의 목적을 설명해야 합니다. 튜토리얼의 이번 섹션에서는 폼 컨트롤과 올바르게 연결된 레이블을 제공하는 방법에 대해 설명합니다. 이후 섹션에서는 지침을 제공하고, 사용자 입력의 유효성을 검사하고, 사용자가 양식을 작성하는 데 도움이 되는 피드백을 제공하는 방법에 대해 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블과 폼 컨트롤은 암묵적 또는 명시적으로 서로 연결되어야 합니다. 예를 들어 웹 브라우저는 컨트롤을 선택하거나 활성화하기 위해 레이블을 더 확장하여 클릭 가능한 영역을 넓게 제공합니다. 또한 보조 기술이 폼 컨트롤을 표시할 때 올바른 레이블을 참조할 수 있도록 보장합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블을 명시적으로 연결하기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하면 레이블 요소를 사용하여 텍스트를 폼 요소와 명시적으로 연결하세요. 레이블의 for 속성은 폼 컨트롤의 id와 정확히 일치해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.01.51.png&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buXDdI/btslpVreqSO/yOmeKaKkpWjLkqI0vZ2c0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buXDdI/btslpVreqSO/yOmeKaKkpWjLkqI0vZ2c0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buXDdI/btslpVreqSO/yOmeKaKkpWjLkqI0vZ2c0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuXDdI%2FbtslpVreqSO%2FyOmeKaKkpWjLkqI0vZ2c0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;595&quot; height=&quot;70&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.01.51.png&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686748504409&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;firstname&quot;&amp;gt;First name:&amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;firstname&quot; id=&quot;firstname&quot;&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;input type=&quot;checkbox&quot; name=&quot;subscribe&quot; id=&quot;subscribe&quot;&amp;gt;
&amp;lt;label for=&quot;subscribe&quot;&amp;gt;Subscribe to newsletter&amp;lt;/label&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 텍스트 숨기기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼 컨트롤의 레이블은 모든 사람이 그 목적을 더 잘 이해할 수 있도록 도와줍니다. 콘텐츠가 렌더링될 때 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;경우에 따라&lt;/span&gt; 문맥에서의 목적이 충분히 명확해 질 수 있습니다. 레이블은 시각적으로 숨길 수 있지만 스크린 리더 및 음성 입력 사용자와 같은 다른 형태의 프레젠테이션 및 상호 작용을 지원하려면 코드 내에 레이블을 제공해야 합니다. 이 자습서에서 요소를 시각적으로 숨기되 보조 기술에서 사용할 수 있도록 하는 방법은 아래 &lt;b&gt;요소 숨기기 참고 사항&lt;/b&gt;에 설명되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예에서 검색 필드가 검색 버튼 바로 옆에 배치되어 있습니다. 텍스트 입력 필드의 목적은 대부분의 상황에서 문맥을 통해 명확하게 알 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.02.34.png&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nUuxV/btslujrkt4L/y4QqpellILuPedxVQWNkt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nUuxV/btslujrkt4L/y4QqpellILuPedxVQWNkt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nUuxV/btslujrkt4L/y4QqpellILuPedxVQWNkt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnUuxV%2Fbtslujrkt4L%2Fy4QqpellILuPedxVQWNkt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;438&quot; height=&quot;51&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.02.34.png&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 레이블 요소 숨기기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 접근 방식에서는 코드 내에서 폼 컨트롤을 식별하기 위해 &amp;lt;label&amp;gt; 요소가 제공되지만 시각적 단서를 통해 목적을 유추할 수 있는 사용자의 중복성을 피하기 위해 화면에서 숨겨져 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748582160&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;search&quot; class=&quot;visuallyhidden&quot;&amp;gt;Search: &amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;search&quot; id=&quot;search&quot;&amp;gt;
&amp;lt;button type=&quot;submit&quot;&amp;gt;Search&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : aria-label 사용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-label 속성은 폼 컨트롤을 식별하&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;기 위해&lt;/span&gt; 사용할 수 있습니다. 이 접근 방식은 스크린 리더 및 기타 보조 기술에서 잘 지원되지만 title 속성(아래 참조)과 달리 시각적 사용자에게 정보가 전달되지 않습니다. 따라서 이 접근 방식은 아래 예의 버튼과 같이 컨트롤의 레이블이 주변 콘텐츠와 명확하게 구분되는 경우에만 사용해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748649850&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; name=&quot;search&quot; aria-label=&quot;Search&quot;&amp;gt;
&amp;lt;button type=&quot;submit&quot;&amp;gt;Search&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 3 : aria-labelledby 사용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-labelledby 속성은 폼 컨트롤을 식별하기 위해 사용할 수 있습니다. 이 접근 방식은 스크린 리더 및 기타 보조 기술에서 잘 지원되지만 title 속성(아래 참조)과 달리 시각적 사용자에게 정보가 전달되지 않습니다. 따라서 이 접근 방식은 아래 예시의 버튼과 같이 컨트롤의 레이블이 주변 콘텐츠에서 명확할 때만 사용해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 텍스트가 포함된 요소의 id는 aria-labelledby 속성의 값으로 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748692491&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; name=&quot;search&quot; aria-labelledby=&quot;searchbutton&quot;&amp;gt;
&amp;lt;button id=&quot;searchbutton&quot; type=&quot;submit&quot;&amp;gt;Search&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 4 : title 속성 이용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;title 속성은 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;폼 컨트롤을 식별하기 위해 사용할 수 있습니다.&lt;/span&gt; 일부 스크린 리더 및 보조 기술은 title 속성을 레이블 요소를 대체하는 것으로 해석하지 않거나 title 속성이 필수적이지 않은 정보를 제공하는데 사용되는 경우가 많기 때문에 이 접근 방식은 일반적으로 신뢰성이 떨어지며 권장되지 않습니다. title 속성의 정보는 마우스로 폼 필드 위로 마우스를 가져가면 사용자에게 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;시각적 &lt;/span&gt;툴팁으로 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.19.38.png&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqsP5U/btsljgJCtw8/9WwK5jl9TR3qldEu5cRgKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqsP5U/btsljgJCtw8/9WwK5jl9TR3qldEu5cRgKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqsP5U/btsljgJCtw8/9WwK5jl9TR3qldEu5cRgKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqsP5U%2FbtsljgJCtw8%2F9WwK5jl9TR3qldEu5cRgKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;419&quot; height=&quot;85&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.19.38.png&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686748732676&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input title=&quot;Search&quot; type=&quot;text&quot; name=&quot;search&quot;&amp;gt;
&amp;lt;button type=&quot;submit&quot;&amp;gt;Search&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소 숨기기 관련 참고 사항&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스크린 리더 및 기타 보조 기술은 웹 브라우저와 마찬가지로 display: none 및 visibility: hidden을 사용하여 스타일을 지정할 때 사용자에게 요소를 숨깁니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정보를 시각적으로 숨기되 스크린 리더 및 기타 보조 기술 사용자가 계속 사용할 수 있도록 하는 데 사용되는 일반적인 접근 방식은 정보를 기술적으로는 표시하지만 실질적으로는 숨긴 상태로 유지하는 CSS를 사용하는 것입니다. 예를 들어, 아래에서 visuallyhidden (CSS visibility: hidden과 혼동하지 마세요) CSS 클래스를 사용하여 1픽셀 영역에 레이블을 표시하는 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748796661&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 코드를 사용할 때 다이얼로그 요소는 여전히 활성화되어 있으므로 레이블을 제외한 폼의 다른 부분을 숨기는 것은 적합하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;암시적으로 레이블 연결하기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일부 상황에서는 폼 컨트롤에 명시적으로 레이블을 지정할 수 없습니다. 예를 들어 콘텐츠 작성자가 스크립트에서 생성된 폼 필드의 id를 모르거나 해당 스크립트에서 id를 전혀 추가하지 않을 수 있습니다. 이 경우 label 요소는 폼 컨트롤과 레이블 텍스트의 컨테이너로 사용되므로 두 요소가 암시적으로 연결됩니다. 일반적으로 명시적 레이블이 보조 기술을 통해 더 잘 지원됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748884408&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label&amp;gt;
  First name:
  &amp;lt;input type=&quot;text&quot; name=&quot;firstname&quot;&amp;gt;
&amp;lt;/label&amp;gt;
&amp;lt;br&amp;gt;
&amp;lt;label&amp;gt;
  &amp;lt;input type=&quot;checkbox&quot; name=&quot;subscribe&quot;&amp;gt;
  Subscribe to newsletter
&amp;lt;/label&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;버튼 레이블 지정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;button&amp;gt; 요소의 레이블은 요소 내부에 설정되며 마크업을 포함할 수 있습니다. 이를 통해 언어 변경 마크업과 같은 고급 접근성 힌트를 포함할 수 있습니다. &amp;lt;input&amp;gt; 요소를 사용하여 버튼을 만들 때 레이블은 요소의 value 속성에 설정됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686748935226&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button type=&quot;submit&quot;&amp;gt;Submit&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;

&amp;lt;input type=&quot;submit&quot; value=&quot;Submit&quot;&amp;gt;
&amp;lt;input type=&quot;button&quot; value=&quot;Cancel&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이미지 버튼(&amp;lt;input type=&amp;rdquo;image&amp;rdquo;&amp;gt;)을 사용하는 경우, 예를 들어 alt 속성에 레이블이 설정됩니다. &amp;lt;input type=&quot;image&quot; src=&quot;searchbutton.png&quot; alt=&quot;Search&quot;&amp;gt; 버튼에 이미지를 설명하는 방법에 대한 자세한 내용은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images#%EA%B8%B0%EB%8A%A5%EC%A0%81%20%EC%9D%B4%EB%AF%B8%EC%A7%80-1&quot;&gt;기능적 이미지&lt;/a&gt;를 참조하세요.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 텍스트의 시각적 위치&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;왼쪽에서 오른쪽으로 쓰는 언어에서는 레이블을 라디오 버튼 및 확인란의 오른쪽에, 다른 폼 필드의 왼쪽 또는 바로 위에 시각적으로 배치하는 것이 일반적입니다. 이 관행을 유지하면 모든 사용자의 양식에 대한 예측 가능성과 이해도가 높아집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 레이블을 폼 필드 위에 배치하면 저시력자 및 모바일 장치 사용자의 가로 스크롤을 줄이는 데 도움이 됩니다. 그러나 이 접근 방식의 유용성은 주변의 다른 양식 필드 및 콘텐츠의 근접성 등 다른 디자인 이슈에 따라 달라지므로 개별적으로 평가해야 합니다. 목표는 레이블과 폼 컨트롤 사이에 가깝고 뚜렷한 시각적 관계를 유지하는 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;연관 폼 요소 그룹화&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;연관된 폼 요소들을 그룹화하면 관련 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;요소들을&lt;/span&gt; &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;모든 사용자가 &lt;/span&gt;더 쉽게 식별할 수 있으므로 더 쉽게 이해할 수 있습니다. 또한 사람들이 전체 폼을 한 번에 파악하는 대신 더 작고 관리하기 쉬운 그룹에 더 쉽게 집중할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그룹화는 시각적으로나 코드에서 수행해야 합니다. (예: &amp;lt;fieldset&amp;gt; 및 &amp;lt;legend&amp;gt; 요소를 사용하여 관련 폼 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;요소들을&lt;/span&gt; 연결). 또한 &amp;lt;select&amp;gt; 요소의 관련 항목은 &amp;lt;optgroup&amp;gt;을 사용하여 그룹화할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 관련 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;요소들을&lt;/span&gt; fieldset과 연결&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;fieldset&amp;gt; 요소는 관련 폼 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;요소들을&lt;/span&gt; 위한 컨테이너를 제공하며, &amp;lt;legend&amp;gt; 요소는 그룹을 식별하는 제목 역할을 합니다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;컨트롤 그룹에 대한 범례는 모든 컨트롤의 공통 속성을 강조 표시하여 그룹의 모든 필드가 필수임을 알릴 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 1) 라디오 버튼&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시에는 사용자가 출력 형식을 선택할 수 있는 세 개의 라디오 버튼이 있습니다. 라디오 버튼 그룹은 항상 &amp;lt;fieldset&amp;gt;을 사용하여 그룹화해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.33.17.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJIjBh/btslvAfaBXZ/DZPrWwaBg6uOD2HtwwWgfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJIjBh/btslvAfaBXZ/DZPrWwaBg6uOD2HtwwWgfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJIjBh/btslvAfaBXZ/DZPrWwaBg6uOD2HtwwWgfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJIjBh%2FbtslvAfaBXZ%2FDZPrWwaBg6uOD2HtwwWgfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;922&quot; height=&quot;124&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.33.17.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686749190970&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;Output format&amp;lt;/legend&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;input type=&quot;radio&quot; name=&quot;format&quot; id=&quot;txt&quot; value=&quot;txt&quot; checked&amp;gt;
    &amp;lt;label for=&quot;txt&quot;&amp;gt;Text file&amp;lt;/label&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;input type=&quot;radio&quot; name=&quot;format&quot; id=&quot;csv&quot; value=&quot;csv&quot;&amp;gt;
    &amp;lt;label for=&quot;csv&quot;&amp;gt;CSV file&amp;lt;/label&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/fieldset&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 2) 체크박스&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예에서 세 개의 체크박스는 다양한 유형의 정보를 수신하기 위한 옵트인(opt-in, 반드시 항목을 선택해야 폼이 처리되는) 기능의 일부입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.35.47.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGP1te/btsluT69OLu/OoeSfRcUBHz6gE3kBnNkKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGP1te/btsluT69OLu/OoeSfRcUBHz6gE3kBnNkKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGP1te/btsluT69OLu/OoeSfRcUBHz6gE3kBnNkKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGP1te%2FbtsluT69OLu%2FOoeSfRcUBHz6gE3kBnNkKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;925&quot; height=&quot;134&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.35.47.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686749255742&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;I want to receive&amp;lt;/legend&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;input type=&quot;checkbox&quot; name=&quot;newsletter&quot; id=&quot;check_1&quot;&amp;gt;
    &amp;lt;label for=&quot;check_1&quot;&amp;gt;The weekly newsletter&amp;lt;/label&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/fieldset&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 3) 관련 필드&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 배송 및 청구 주소를 입력하는 폼 필드를 보여줍니다. 두 그룹의 레이블에는 동일한 텍스트가 있으므로 fieldset 요소는 그룹별로 폼 필드를 구분하는 데 도움이 됩니다. &amp;lt;legend&amp;gt;가 스크린 리더에서 읽히지 않는 경우(아래 참고 사항 참조) 각 그룹의 첫 번째 폼 컨트롤의 레이블에는 그룹 이름이 포함되어야 합니다. 이 이름은 시각적으로 숨길 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.36.35.png&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MbNcV/btslmUfg6mN/SCQPTGz8SazpdOMGa2njA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MbNcV/btslmUfg6mN/SCQPTGz8SazpdOMGa2njA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MbNcV/btslmUfg6mN/SCQPTGz8SazpdOMGa2njA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMbNcV%2FbtslmUfg6mN%2FSCQPTGz8SazpdOMGa2njA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;862&quot; height=&quot;346&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.36.35.png&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686749358993&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;Shipping Address:&amp;lt;/legend&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;shipping_name&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Shipping &amp;lt;/span&amp;gt;Name:
    &amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; name=&quot;shipping_name&quot; id=&quot;shipping_name&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;shipping_street&quot;&amp;gt;Street:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; name=&quot;shipping_street&quot; id=&quot;shipping_street&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/fieldset&amp;gt;
&amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;Billing Address:&amp;lt;/legend&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;billing_name&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Billing &amp;lt;/span&amp;gt;Name:
    &amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; name=&quot;billing_name&quot; id=&quot;billing_name&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;billing_street&quot;&amp;gt;Street:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; name=&quot;billing_street&quot; id=&quot;billing_street&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/fieldset&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;구성에 따라 일부 스크린 리더는 모든 양식 요소에 대해 범례를 한 번만 읽거나, 드물게는 전혀 읽지 않을 수도 있습니다. 이를 수용하려면 다음을 고려하십시오. &lt;br /&gt;&lt;br /&gt;- 매번 레이블과 함께 읽어야 하는 상황에서는 범례를 가능한 한 짧게 만듭니다. &lt;br /&gt;- 범례를 소리내어 읽지 않는 상황에서는 모든 레이블에서 범례를 반복하지 않고 개별 레이블을 충분히 설명 할 수 있도록 만듭니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : 관련 컨트롤을 WAI-ARIA와 연결하기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;WAI-ARIA는 fieldset 및 legend와 유사하게 작동하는 그룹화 역할을 제공합니다. 이 예제에서 div 요소에는 포함된 요소가 그룹의 멤버임을 나타내는 role=group이 있고 aria-labelledby 속성은 그룹의 레이블 역할을 할 텍스트의 id를 참조합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 기법은 추가적인 스타일링 가능성을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.39.23.png&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biKrJC/btslt0seQYM/1bmr8eV8znD8byAY6KLqK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biKrJC/btslt0seQYM/1bmr8eV8znD8byAY6KLqK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biKrJC/btslt0seQYM/1bmr8eV8znD8byAY6KLqK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiKrJC%2Fbtslt0seQYM%2F1bmr8eV8znD8byAY6KLqK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;715&quot; height=&quot;339&quot; data-filename=&quot;스크린샷 2023-06-26 오후 10.39.23.png&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 웹 브라우저 및 스크린 리더 조합에서 WAI-ARIA가 완벽하게 지원되는 것은 아니므로 그룹의 첫 번째 폼 컨트롤에 그룹 식별자를 추가해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686749555599&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div role=&quot;group&quot; aria-labelledby=&quot;shipping_head&quot;&amp;gt;
  &amp;lt;div id=&quot;shipping_head&quot;&amp;gt;Shipping Address:&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;shipping_name&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Shipping &amp;lt;/span&amp;gt;Name:
    &amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
	&amp;lt;input type=&quot;text&quot; name=&quot;shipping_name&quot; id=&quot;shipping_name&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/div&amp;gt;
&amp;lt;div role=&quot;group&quot; aria-labelledby=&quot;billing_head&quot;&amp;gt;
  &amp;lt;div id=&quot;billing_head&quot;&amp;gt;Billing Address:&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;billing_name&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Billing &amp;lt;/span&amp;gt;Name:
    &amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; name=&quot;billing_name&quot; id=&quot;billing_name&quot;&amp;gt;
  &amp;lt;/div&amp;gt;
  [&amp;hellip;]
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;select 요소의 항목 그룹화&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;옵션 그룹이 있는 select 요소의 경우 optgroup 요소를 사용하여 해당 그룹을 표시할 수 있습니다. optgroup 요소의 label 속성은 그룹에 레이블을 제공하는 데 사용됩니다. 이는 관련 옵션이 많은 목록에 특히 유용합니다. 아래 예에서 사용자는 세 가지 코스 중 하나의 강의를 선택할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.35.22.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxVGkU/btsjYdta2Om/w1jievkCNk8gBXvbVphQTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxVGkU/btsjYdta2Om/w1jievkCNk8gBXvbVphQTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxVGkU/btsjYdta2Om/w1jievkCNk8gBXvbVphQTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxVGkU%2FbtsjYdta2Om%2Fw1jievkCNk8gBXvbVphQTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;101&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.35.22.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686749618222&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select&amp;gt;
  &amp;lt;optgroup label=&quot;8.01 Physics I: Classical Mechanics&quot;&amp;gt;
    &amp;lt;option value=&quot;8.01.1&quot;&amp;gt;Lecture 01: Powers of Ten&amp;lt;/option&amp;gt;
    &amp;lt;option value=&quot;8.01.2&quot;&amp;gt;Lecture 02: 1D Kinematics&amp;lt;/option&amp;gt;
    &amp;lt;option value=&quot;8.01.3&quot;&amp;gt;Lecture 03: Vectors&amp;lt;/option&amp;gt;
  &amp;lt;/optgroup&amp;gt;
  &amp;lt;optgroup label=&quot;8.02 Physics II: Electricity and Magnestism&quot;&amp;gt;
    &amp;lt;option value=&quot;8.02.1&quot;&amp;gt;Lecture 01: What holds our world together?&amp;lt;/option&amp;gt;
    [&amp;hellip;]
  &amp;lt;/optgroup&amp;gt;
  [&amp;hellip;]
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼(form) 지침&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 폼을 작성하고 개별 폼 요소들을 사용하는 방법을 이해하는 데 도움이 되는 지침을 제공하세요. 필수 및 선택 입력, 데이터 형식 및 기타 관련 정보를 표시합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;중요 : 스크린 리더는 &amp;lt;form&amp;gt; 요소 내의 콘텐츠를 처리할 때 종종 &quot;폼 모드&quot;로 전환합니다. 이 모드에서는 일반적으로 &amp;lt;input&amp;gt;, &amp;lt;select&amp;gt;, &amp;lt;textarea&amp;gt;, &amp;lt;legend&amp;gt; 및 &amp;lt;label&amp;gt;과 같은 폼 요소만 소리내어 읽습니다. 폼 지침을 소리내어 읽을 수 있는 방식으로 포함시키는 것이 중요합니다. 이에 대해서는 아래에서 자세히 설명합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 지침&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하다면 전체 폼에 적용되는 전반적인 지침을 제공합니다. 예를 들어 필수 및 선택 입력, 허용되는 데이터 형식 및 시간 제한을 표시합니다. 이러한 지침은 &amp;lt;form&amp;gt; 요소 앞에 제공하여 스크린 리더가 '폼 모드'로 전환하기 전에 소리로 읽을 수 있도록 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예에서는 폼 지침에 필수 필드가 표시되는 방법, 주요 데이터 필드의 예상 형식, 각 입력에 대한 추가 도움말을 찾을 수 있는 위치가 표시되어 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;'필수'로 표시된 모든 필드를 작성해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;날짜는 모두 dd/mm/yyyy 형식으로 입력해야 합니다. (예: 21/07/2013)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비밀번호는 최소 8개 이상의 문자 및/또는 숫자를 포함해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 필드 바로 뒤에 추가 도움말이 있습니다. &amp;lt;/aside&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;&lt;b&gt;인라인 지침&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전체 지침 외에도 폼 컨트롤의 레이블 내에 관련 지침을 제공하는 것도 중요합니다. 예를 들어 레이블의 텍스트에 필수 입력 필드와 데이터 형식을 표시하는 것입니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 내에 지침 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;간단한 사용 사례의 경우 레이블 내에 지침을 제공하는 것으로 충분할 수 있습니다. 이 접근 방식은 다양한 웹 브라우저와 보조 기술에서 안정적으로 사용할 수 있지만, 일부 스타일링 요구 사항을 지원하려면 약간의 추가 고려가 필요할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시에서 '만료일'에 필요한 형식은 동일한 라벨 내에서 'MM/YYYY' 로 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.39.23.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXYiMq/btsjTvVI6C9/M1aecmjqcIOF1ACxADX8e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXYiMq/btsjTvVI6C9/M1aecmjqcIOF1ACxADX8e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXYiMq/btsjTvVI6C9/M1aecmjqcIOF1ACxADX8e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXYiMq%2FbtsjTvVI6C9%2FM1aecmjqcIOF1ACxADX8e1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;45&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.39.23.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686750123955&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;expire&quot;&amp;gt;Expiration date (MM/YYYY): &amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;expire&quot; id=&quot;expire&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 외부에 지침 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블 외부에 지침을 제공하면 보다 유연한 위치 지정 및 디자인이 가능하지만 간혹 놓칠 수 있습니다. 또한 일부 웹 브라우저(일반적으로 이전 버전)와 WAI-ARIA를 구현하지 않는 보조 기술에서는 지원되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근 방식 1 : aria-labelledby 이용하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;한 가지 접근 방식은 WAI-ARIA aria-labelledby 속성을 사용하여 지침을 폼 요소들과 연결하는 것입니다. 이 튜토리얼을 작성하는 시점에서 이 접근 방식은 모든 웹 브라우저 및 보조 기술 (예: 점자 디스플레이)에서 완벽하게 지원되지는 않습니다. 이전 버전과의 호환성을 보장하기 위해 이 예제에서는 for 및 id 속성도 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.39.56.png&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k0brj/btsjZFvGmJ7/qkE5JfM8l2qvLPzyVSUZVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k0brj/btsjZFvGmJ7/qkE5JfM8l2qvLPzyVSUZVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k0brj/btsjZFvGmJ7/qkE5JfM8l2qvLPzyVSUZVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0brj%2FbtsjZFvGmJ7%2FqkE5JfM8l2qvLPzyVSUZVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;421&quot; height=&quot;63&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.39.56.png&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686750200158&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label id=&quot;expLabel&quot; for=&quot;expire&quot;&amp;gt;Expiration date:&amp;lt;/label&amp;gt;
&amp;lt;span&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;expire&quot; id=&quot;expire&quot; aria-labelledby=&quot;expLabel expDesc&quot;&amp;gt;
  &amp;lt;span id=&quot;expDesc&quot;&amp;gt;MM/YYYY&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : aria-describedby 이용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;추가 지침을 폼 필드와 연결하는 또 다른 접근 방식은 aria-describedby를 사용하는 것입니다. 이 속성에 의해 참조되는 정보는 레이블 및 기타 정보가 제공된 후에 사용자에게 제공됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686750257259&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label id=&quot;expLabel&quot; for=&quot;expire&quot;&amp;gt;Expiration date:&amp;lt;/label&amp;gt;
&amp;lt;span&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;expire&quot; id=&quot;expire&quot; aria-labelledby=&quot;expLabel&quot; aria-describedby=&quot;expDesc&quot;&amp;gt;
  &amp;lt;span id=&quot;expDesc&quot;&amp;gt;MM/YYYY&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;placeholder 텍스트&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;placeholder 텍스트는 사용자가 아직 편집하지 않은 폼 필드 내부에 필요한 데이터 형식에 대한 지침 또는 예시를 제공합니다. placeholder 텍스트는 일반적으로 사용자가 제공한 텍스트보다 낮은 색상 대비로 표시되며, 사용자가 텍스트 입력을 시작하면 폼 필드에서 사라집니다. placeholder 텍스트에 지침 정보나 예시가 포함되어 있다가 사라지는 경우, 사용자가 폼을 제출하기 전에 응답을 확인하기가 더 어려워집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;placeholder 텍스트는 많은 사용자에게 유용한 지침을 제공하지만, placeholder &lt;b&gt;텍스트가 레이블을 대체할 수는 없습니다&lt;/b&gt;. 스크린 리더와 같은 보조 기술은 placeholder 텍스트를 레이블로 취급하지 않습니다. 또한 이 튜토리얼을 작성하는 시점에 placeholder 텍스트는 보조 기술 전반에서 광범위하게 지원되지 않으며 구형 웹 브라우저에서는 표시되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 튜토리얼의 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form#%EB%A0%88%EC%9D%B4%EB%B8%94%EC%9D%84%20%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-1&quot;&gt;숨겨진 레이블&lt;/a&gt; 섹션에서는 정보를 시각적으로 숨기되 보조 기술에서 계속 사용할 수 있도록 하는 방법에 대해 설명합니다. 이와 동일한 접근 방식을 사용하여 레이블과 placeholder 텍스트가 모두 표시되는 시각적 중복을 피할 수 있습니다. 이렇게 하면 사용자가 양식을 검토하기가 매우 어렵다는 점에 유의하세요. 이 문제를 피하기 위해 JavaScript를 사용하여 레이블이 초점이 있는 입력 위나 옆에 시각적으로(연결된 레이블 요소에) 표시되도록 할 수 있습니다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.40.28.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ILiD9/btsjXTPgCxL/M6XJnkXjB0uYB6Ri5JCJnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ILiD9/btsjXTPgCxL/M6XJnkXjB0uYB6Ri5JCJnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ILiD9/btsjXTPgCxL/M6XJnkXjB0uYB6Ri5JCJnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FILiD9%2FbtsjXTPgCxL%2FM6XJnkXjB0uYB6Ri5JCJnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;74&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.40.28.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686750380195&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;search&quot;&amp;gt;Search:&amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;search&quot; id=&quot;search&quot; placeholder=&quot;e.g. Apple Pie&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;email&quot;&amp;gt;Email: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;email&quot; id=&quot;email&quot; placeholder=&quot;joe@example.com&quot;&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스타일링&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 튜토리얼을 작성할 당시 웹 브라우저는 일반적으로 placeholder 텍스트를 &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/#contrast-minimum&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WCAG의 최소 대비 요구 사항&lt;/a&gt;을 충족하지 않는 색상으로 표시했습니다. 이는 많은 사람들이 보기 어렵다는 것을 의미합니다. 웹 브라우저는 색상과 불투명도의 조합을 사용하여 이 효과를 얻습니다. 대부분의 웹 브라우저에서 placeholder의 색상은 전용 CSS 선택자를 사용하여 스타일을 지정할 수 있습니다. 다음 코드 스니펫은 요소의 배경이 흰색이라고 가정할 때 색상 대비 요구 사항을 충족하기에 충분한 대비를 가진 밝은 회색으로 색상을 설정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686750450313&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;::placeholder {
  color: #767676;
  opacity: 1;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;입력 유효성 검사&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지침을 제공하는 것 외에도 사용자 입력의 유효성을 검사하여 사용자의 실수를 방지하세요. HTML5는 이메일 주소, 날짜 등 일반적인 입력 유형의 유효성을 검사하는 다양한 기본 제공 기능을 정의합니다. 사용자 지정 컨트롤의 유효성을 검사하거나 레거시 브라우저를 지원하는 등 일부 상황에서는 사용자 입력의 유효성을 검사하기 위해 추가 스크립팅이 필요할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 지정 유효성 검사는 이 튜토리얼의 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form#%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%95%8C%EB%A6%BC-1&quot;&gt;사용자 알림&lt;/a&gt; 부분에 설명된 대로 사용자에게 접근 가능한 방식으로 알려야 합니다. 클라이언트 측 유효성 검사만으로는 보안을 보장할 수 없으므로 서버 측에서도 데이터를 유효성 검사해야 합니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;required 입력 유효성 검사&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼에는 레이블을 사용하여 명확하게 식별해야 하는 필수 입력이 포함되어 있는 경우가 많습니다. 또한 필수 속성을 프로그래밍 방식으로 폼 컨트롤에 추가하여 필수임을 나타낼 수도 있습니다. 대부분의 최신 웹 브라우저는 이 속성을 지원하며 표준 웹 브라우저 다이얼 로그 메커니즘을 사용하여 누락된 필수 입력을 사용자에게 전달합니다. 이러한 다이얼 로그는 기본 font-size, color 및 언어와 같은 웹 브라우저(및 운영 체제)에서 사용자의 설정 및 기본 설정을 존중해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시에서는 입력 필드에 required 속성이 추가되었습니다. 웹 브라우저가 HTML5를 지원하는 경우 입력 필드에 텍스트를 입력하지 않고는 폼을 제출할 수 없습니다. 대신 웹 브라우저 자체에서 생성된 메시지가 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보조 기술을 사용하지 않거나 HTML5 required 속성을 지원하지 않는 구형 웹 브라우저를 사용하는 사용자에게 알리기 위해 레이블에 '(필수)'가 표시되기도 합니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.49.10.png&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;47&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DBBtW/btsj0dMswV8/3XfKtsEi4SWSfQl9T5rfik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DBBtW/btsj0dMswV8/3XfKtsEi4SWSfQl9T5rfik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DBBtW/btsj0dMswV8/3XfKtsEi4SWSfQl9T5rfik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDBBtW%2Fbtsj0dMswV8%2F3XfKtsEi4SWSfQl9T5rfik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;47&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.49.10.png&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;47&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686751136963&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;name&quot;&amp;gt;Name (required): &amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;name&quot; required aria-required=&quot;true&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;aria-required 속성은 보조 기술에 필요한 컨트롤에 대한 정보를 제공하여 (입력의 유효성을 검사하는 것과는 반대로) 사용자에게 적절하게 알려줍니다. 대부분의 최신 웹 브라우저는 HTML5 required 속성이 존재할 때 자동으로 해당 값을 true로 설정합니다. 이 예제에서는 필수 속성을 보조 기술에 전달하지 않는 웹 브라우저를 지원하기 위해 중복으로 제공됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;공통 입력 유효성 검사&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML5는 email, url, number, range, date 또는 time 등 다른 데이터에 대한 input type도 제공합니다. 대부분의 최신 웹 브라우저는 이러한 기능을 지원하며 입력 유효성 검사를 처리합니다. 또한 HTML5 유효성 검사는 date picker 및 사용자 지정 온스크린 키보드와 같은 특정 컨트롤을 제공하여 사용자가 데이터를 입력하는 데 도움을 줍니다. HTML5 입력 유형은 이러한 HTML5 기능을 지원하지 않는 구형 웹 브라우저에서는 단순한 텍스트 입력 필드로 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예는 이러한 HTML5 입력 유형이 실제로 작동하는 모습을 보여줍니다. 웹 브라우저에 따라 'range' 입력 필드는 슬라이더 컨트롤로 표시되어 사용자가 더 쉽게 입력할 수 있습니다. 마찬가지로 'number' 입력 필드에는 숫자를 점진적으로 늘리거나 줄일 수 있는 버튼이 표시될 수 있습니다. 잘못된 이메일 주소와 같은 입력 오류는 이전 예에서와 같이 웹 브라우저 대화 상자를 사용하여 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.49.38.png&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tNy6S/btsjYxrpjxA/AD264w0NuYVBbbe2aQny11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tNy6S/btsjYxrpjxA/AD264w0NuYVBbbe2aQny11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tNy6S/btsjYxrpjxA/AD264w0NuYVBbbe2aQny11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtNy6S%2FbtsjYxrpjxA%2FAD264w0NuYVBbbe2aQny11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;518&quot; height=&quot;255&quot; data-filename=&quot;스크린샷 2023-06-14 오후 10.49.38.png&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686751335233&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;email&quot;&amp;gt;Email: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;email&quot; name=&quot;email&quot; id=&quot;email&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;url&quot;&amp;gt;Website: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;url&quot; name=&quot;url&quot; id=&quot;url&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;number&quot;&amp;gt;Number: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;number&quot; name=&quot;number&quot; id=&quot;number&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;10&quot; value=&quot;0&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;range&quot;&amp;gt;Range: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;range&quot; name=&quot;range&quot; id=&quot;range&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;10&quot; value=&quot;0&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;date&quot;&amp;gt;Date: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;date&quot; name=&quot;date&quot; id=&quot;date&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;time&quot;&amp;gt;Time: &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;time&quot; name=&quot;time&quot; id=&quot;time&quot;&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이러한 HTML5 input type 중 몇 가지에는 입력을 제한하고 유효성을 검사하는 데 도움이 되는 추가 매개변수가 있습니다. 여기에는 다음이 포함됩니다.&lt;br /&gt;- maxlength는 텍스트 필드의 최대 길이를 정의합니다.&lt;br /&gt;- min 및 max는 number 및 range 필드의 최소 및 최대를 정의합니다.&lt;br /&gt;- steps는 숫자 및 범위 필드를 증가 및 감소시킬 수 있는 단계를 정의합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;패턴 입력 유효성 검사&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML5 pattern 속성을 사용하면 정규 표현식을 사용하여 입력에 대한 사용자 지정 형식을 지정할 수 있습니다. 이는 전화번호, 우편번호, 일련번호와 같은 특정 유형의 데이터 패턴에 유용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 1 : 자동차 번호판 번호&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예에서 입력 요소의 패턴 속성은 독일의 자동차 번호판(등록) 번호와 일치하는 특정 형식을 지정합니다. 필수 패턴은 1~3개의 문자(자동차가 등록된 도시의 경우), 공백, 2~4개의 임의 문자, 또 다른 공백, 1~4개의 임의 숫자로 구성됩니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686751942183&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;input type=&quot;text&quot; id=&quot;license&quot;
	pattern=&quot;[A-Z&amp;Ouml;&amp;Auml;&amp;Uuml;]{1,3} [A-Z]{2,4} [0-9]{1,4}&quot;
  &amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다양한 input type에 대한 관용&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유효성 검사는 특정 데이터 유형에 대해 가능한 한 다양한 input type을 수용하는 것을 목표로 해야 합니다. 예를 들어, 전화번호는 서로 다른 구분 기호 및 숫자 그룹으로 작성됩니다. 여러 표기법을 해석할 수 있다면 폼을 사용하기가 더 쉬워집니다. 또한 자유롭게 입력하는 것이 도움이 됩니다. 예를 들어 우편 번호는 일부 국가에서는 숫자로만 제한되지 않으므로 숫자 유형 입력을 사용하면 많은 웹사이트 사용자에게 문제가 될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클라이언트 측 유효성 검사의 이점&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 클라이언트 측 유효성 검사는 사용자 경험을 개선하고 유효성 검사 오류를 더 쉽게 해결할 수 있게 해줍니다. 또한 네트워크 및 서버 부하를 줄일 수 있습니다. 하지만 모든 웹 브라우저가 HTML5를 지원하는 것은 아니며, 사용자 지정 유효성 검사 스크립트를 지원하지 않을 수도 있습니다. 또한 클라이언트 측 유효성 검사를 쉽게 우회하거나 데이터가 서버에 도달하기 전에 변경될 수 있습니다. 즉, 서버 측에서도 유효성 검사를 수행해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자에 의한 유효성 검사&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하면 사용자가 자신의 입력을 확인하고 필요한 경우 수정할 수 있어야 합니다. 이는 영구적이거나 다른 방식으로 중요한 작업뿐만 아니라 데이터를 자동으로 확인할 수 없는 경우에도 특히 중요합니다. 예를 들어, 사용자가 제공한 우편 주소를 확인할 수 있는 옵션을 제공하면 구매가 완료되기 전에 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 확인 필요&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능한 경우 데이터 영구 삭제와 같은 되돌릴 수 없는 작업에 대해 사용자 확인을 요구합니다. 예를 들면 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CMS를 사용하면 사용자가 휴지통 폴더에서 댓글을 영구적으로 삭제할 수 있습니다. 이 작업이 시작되면 사용자에게 작업을 확인하는 대화 상자가 표시됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;뱅킹 애플리케이션에서는 사용자가 '이체하려는 금액이 정확한지 확인했습니다'라는 확인란을 선택하여 이체 거래를 확인하도록 요구합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;쇼핑 웹사이트에서는 구매 거래가 완료되고 주문이 접수되기 전에 사용자가 확인해야 하는 주문 요약, 배송 주소 및 청구 정보를 표시합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;실행 취소 기능 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능한 경우 되돌릴 수 있는 작업을 취소할 수 있는 메커니즘을 제공합니다. 예를 들면 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;콘텐츠 관리 시스템(CMS)에서 원치 않는 댓글을 삭제할 수 있습니다. 댓글을 바로 삭제하는 대신 '휴지통' 폴더에 저장하여 복원할 수 있도록 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹메일 애플리케이션을 사용하면 몇 초 동안 이메일 전송을 '취소'할 수 있습니다. 이 기능은 사용자가 파일을 첨부하는 것을 잊었거나 잘못된 수신자에게 이메일을 보낸 경우에 유용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;쇼핑 웹사이트에서는 주문이 제출된 후 최대 24시간까지 구매를 취소할 수 있습니다. 웹사이트에서는 정책을 설명하고 사용자에게 이메일로 전송된 구매 영수증에 정책 요약을 포함합니다. 24시간이 지나면 구매 품목이 사용자에게 배송되며 더 이상 취소할 수 없습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 알림&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;성공 여부와 관계없이 폼 제출 결과에 대한 피드백을 사용자에게 제공합니다. 여기에는 폼 컨트롤 또는 그 근처의 인라인 피드백과 일반적으로 폼 제출 후에 제공되는 전반적인 피드백이 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;알림은 간결하고 명확해야 합니다. 특히 오류 메시지는 이해하기 쉬워야 하며 해결 방법에 대한 간단한 지침을 제공해야 합니다. 성공 메시지 역시 작업 완료를 확인하는 데 중요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전반적인 피드백&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼이 제출되면 제출이 성공했는지 또는 오류가 발생했는지 여부를 사용자에게 알려주는 것이 중요합니다. 다음 기술 중 몇 가지를 조합할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 1 : 기본 제목 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;피드백을 제공하는 일반적인 방법은 웹 페이지의 기본 제목(일반적으로 가장 눈에 잘 띄게 표시되는 &amp;lt;h1&amp;gt; 또는 &amp;lt;h2&amp;gt; 요소)을 사용하는 것입니다. 이 기법은 폼이 서버에서 처리될 때 특히 유용하지만 클라이언트 측 스크립팅에도 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687846482516&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* Error */ 
&amp;lt;h1&amp;gt;3 Errors &amp;ndash; Billing Address&amp;lt;/h1&amp;gt;

/* Success */ 
&amp;lt;h1&amp;gt;Thank you for submitting your order.&amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;기본 제목의 주된 목적은 여전히 사용자가 현재 있는 웹 페이지를 식별하는 것입니다. 오류로 인해 사용자가 동일한 웹 페이지로 되돌아간 경우 '오류'라는 단어와 오류 횟수를 사용하여 간단하게 표시하는 것이 도움이 됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 2 : 페이지 타이틀 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 페이지의 &amp;lt;title&amp;gt; 요소는 성공 및 오류를 표시하는 데 유용할 수 있습니다. 특히 스크린 리더 사용자는 웹 페이지가 로드될 때 이 피드백을 즉시 받게 됩니다. 이 요소는 기본 타이틀이 탐색 메뉴 뒤와 같이 콘텐츠 내 더 깊은 곳에 위치할 때 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687846640637&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* Error */
&amp;lt;title&amp;gt;3 Errors &amp;ndash; Billing Address&amp;lt;/title&amp;gt;

/* Success */
&amp;lt;title&amp;gt;Thank you for submitting your order.&amp;lt;/title&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 3 : 대화 창(dialog) 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대화 창은 사용자에게 변경 사항을 알리는 일반적인 방법입니다. 사용자에게 알리는 다른 수단이 쉽게 놓칠 수 있는 경우 사용할 수 있습니다. 대화 창은 눈에 거슬리고 주의를 집중시키므로 원하는 효과를 얻을 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자바스크립트는 적절한 키보드 탐색 기능을 제공하고 글꼴 크기, 색상, 언어 등 사용자의 기본 설정을 존중하는 매우 기본적인 경고 대화 창을 제공합니다. 사용자 정의 대화 창 구현은 해당 기능과 일치해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래의 기본 예는 사용자가 '저장' 버튼을 활성화할 때 표시되는 팝업을 보여줍니다. 대화 창에 메시지가 표시되고 사용자가 &quot;확인&quot;을 선택할 때까지 웹 페이지가 비활성화됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.04.28.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmeTXp/btsmup5i5p7/Dpz3aET1m26GaFzkySNAW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmeTXp/btsmup5i5p7/Dpz3aET1m26GaFzkySNAW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmeTXp/btsmup5i5p7/Dpz3aET1m26GaFzkySNAW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmeTXp%2Fbtsmup5i5p7%2FDpz3aET1m26GaFzkySNAW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;71&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.04.28.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688533231000&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button type=&quot;button&quot; id=&quot;alertconfirm&quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688533285912&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.getElementById('alertconfirm')
.addEventListener('click', function() {
	/* [&amp;hellip; code saving data &amp;hellip;] */
	alert('Thanks for submitting the form!');
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 4 : 오류 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오류가 발생하면 페이지 상단의 폼 앞에 오류를 노출하는 것이 도움이 됩니다. 목록에는 식별하기 쉽도록 고유한 제목이 있어야 합니다. 나열된 각 오류는 다음과 같아야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 컨트롤을 인식할 수 있도록 해당 폼 컨트롤의 레이블을 참조합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 사람이 이해하기 쉬운 방식으로 오류에 대한 간결한 설명을 제공해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;실수를 수정하는 방법을 표시하고 사용자에게 형식 요구 사항을 상기시킵니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 쉽게 액세스할 수 있도록 해당 폼 컨트롤에 대한 페이지 내 링크를 포함합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어 AJAX 기술을 사용할 때 브라우저에서 새 페이지를 로드하지 않고 폼 오류와 같은 변경 사항을 페이지에 동적으로 표시하는 경우가 있습니다. 이러한 경우 사용자에게 알리기 위해 오류 목록을 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;눈에 잘 띄는&lt;/span&gt; 컨테이너의 상단에 삽입해야 합니다. 위의 조언과 더불어 이 컨테이너에는 보조 기술 사용자가 이 변경 사항을 알 수 있도록 role 속성이 alert로 설정되어 있어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.12.29.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KTYcR/btsmyZd0CHb/h1d7rzTYvZllB3tOceKIpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KTYcR/btsmyZd0CHb/h1d7rzTYvZllB3tOceKIpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KTYcR/btsmyZd0CHb/h1d7rzTYvZllB3tOceKIpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKTYcR%2FbtsmyZd0CHb%2Fh1d7rzTYvZllB3tOceKIpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;925&quot; height=&quot;132&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.12.29.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688533449526&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div role=&quot;alert&quot;&amp;gt;
  &amp;lt;h4&amp;gt;There are 2 errors in this form&amp;lt;/h4&amp;gt;
  &amp;lt;ul&amp;gt;
     &amp;lt;li&amp;gt;
        &amp;lt;a href=&quot;#firstname&quot; id=&quot;firstname_error&quot;&amp;gt;
          The First name field is empty; it is a required field and must be filled in.
        &amp;lt;/a&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
      &amp;lt;a href=&quot;#birthdate&quot; id=&quot;birthdate_error&quot;&amp;gt;
        The Date field is in the wrong format; it should be similar to 17/09/2013 (use a / to separate day, month, and year).
      &amp;lt;/a&amp;gt;
    &amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 폼 필드는 aria-describedby 속성을 사용하여 해당 오류 메시지와 연결할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688533581314&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;firstname&quot;&amp;gt;First Name:&amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;firstname&quot; aria-describedby=&quot;firstname_error&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인라인 피드백&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;전반적인 피드백 외에도 폼 컨트롤 또는 그 근처에서 보다 구체적인 피드백을 제공하면 사용자가 폼을 사용하는 데 더 큰 도움이 될 수 있습니다. 여기에는 입력 오류뿐만 아니라 올바르게 입력했는지를 알려주는 피드백도 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 메시지와 시각적 단서의 조합을 제공하기 위해 인라인 피드백을 사용합니다. 예를 들어, 올바른 입력은 확인 표시(✓)와 녹색 테두리로 표시하고, 오류는 오류 아이콘(예: 빨간색(✗) 권장 사항 또는 느낌표)과 빨간색 테두리로 표시할 수 있습니다. 오류 메시지에는 실수를 수정하는 방법에 대한 지침도 제공해야 합니다. 이러한 오류 메시지의 개념은 기본적으로 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form#%ED%8F%BC(form)%20%EC%A7%80%EC%B9%A8-1&quot;&gt;지침&lt;/a&gt; 제공과 동일합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 폼 제출 이후&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시는 두 개의 입력 필드가 있는 폼을 보여줍니다. 첫 번째 입력 필드인 'username'은 사용자 아이디를 등록하는 데 사용됩니다. 두 번째 입력 필드인 'expiry date'은 등록이 만료되는 날짜를 입력하는 데 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼이 제출되면 입력 내용이 확인되고 사용자에게 피드백이 제공됩니다. 각 입력 필드에 적절한 성공 및 오류 메시지가 표시되어 사용자가 폼을 작성하는 데 도움이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제출된 데이터에 오류가 있는 경우, 오류가 있는 첫 번째 &amp;lt;input&amp;gt; 요소에 초점을 설정하는 것이 편리합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.24.34.png&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s6QpT/btsmyZFarca/KTQq6fDmXWytsxadxjdQCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s6QpT/btsmyZFarca/KTQq6fDmXWytsxadxjdQCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s6QpT/btsmyZFarca/KTQq6fDmXWytsxadxjdQCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs6QpT%2FbtsmyZFarca%2FKTQq6fDmXWytsxadxjdQCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1244&quot; height=&quot;284&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.24.34.png&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534015305&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;success&quot;&amp;gt;
  &amp;lt;label for=&quot;username&quot;&amp;gt;
    &amp;lt;strong&amp;gt;OK:&amp;lt;/strong&amp;gt; Username:
  &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;username&quot;
         id=&quot;username&quot; value=&quot;spaceteddy13&quot;
         aria-describedby=&quot;userDesc&quot;&amp;gt;
  &amp;lt;span id=&quot;userDesc&quot;&amp;gt;✓&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;error&quot;&amp;gt;
  &amp;lt;label for=&quot;expire&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Error:&amp;lt;/strong&amp;gt;
    Expiry date:
  &amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;expire&quot;
         id=&quot;expire&quot; value=&quot;03.2015&quot;
         aria-describedby=&quot;expDesc&quot;&amp;gt;
  &amp;lt;span id=&quot;expDesc&quot;&amp;gt;Use the format MM/YYYY.&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;button type=&quot;submit&quot;&amp;gt;Submit&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688534035013&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.error   { color: #900; }
.success { color: #007a00; }
.error   input { border: 3px solid #900; }
.success input { border: 3px solid #007a00; }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : 입력 중&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;입력 중 즉각적인 피드백은 매우 유용할 수 있습니다. 예를 들어, 이전 예제에서 사용자 이름의 사용 가능 여부를 확인하려면 사용자가 폼을 여러 번 다시 제출해야 했습니다. 사용자가 입력하는 동안 피드백을 제공하면 적합한 사용자 아이디를 찾을 때까지 더 쉽게 시도할 수 있습니다. 그러나 이러한 기능을 사용하려면 클라이언트 측 스크립팅이 필요하며 모든 상황이 이러한 피드백에 적합한 것은 아닙니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 1 : 바이너리 메시지&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서는 사용자가 입력 필드에 텍스트를 입력하는 동안 사용자 이름의 사용 가능 여부가 즉시 확인됩니다. 사용자가 폼을 제출할 필요 없이 입력 값에 따라 성공 및 오류 메시지가 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.27.29.png&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DxBYZ/btsmrX9VBBT/Qntsle1a8gMKoUQCYFimL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DxBYZ/btsmrX9VBBT/Qntsle1a8gMKoUQCYFimL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DxBYZ/btsmrX9VBBT/Qntsle1a8gMKoUQCYFimL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDxBYZ%2FbtsmrX9VBBT%2FQntsle1a8gMKoUQCYFimL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;838&quot; height=&quot;94&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.27.29.png&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534169096&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;username&quot;&amp;gt;Username:&amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;username&quot; id=&quot;username&quot;&amp;gt;
  &amp;lt;span id=&quot;username_feedback&quot; aria-live=&quot;polite&quot;&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688534298333&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.getElementById('username').addEventListener('keyup', function(){
  function setError(el, msg) {
    el.parentNode.querySelector('strong').innerHTML = &quot;Error:&quot;;
    el.parentNode.className='error';
    el.parentNode.querySelector('span').innerHTML = msg;
  }
  function setSuccess(el) {
    el.parentNode.querySelector('strong').innerHTML = &quot;OK:&quot;;
    el.parentNode.className='success';
    el.parentNode.querySelector('span').innerHTML = &quot;&amp;amp;check;&quot;;
  }
  var val = this.value;
  if (val !== &quot;&quot;) {
    if (taken_usernames.includes(val.trim())) {
      setError(this, '&amp;amp;cross; Sorry, this username is taken.');
    } else {
      setSuccess(this, '&amp;amp;check; You can use this username.');
    }
  } else {
    document.getElementById('username_feedback').innerHTML = '';
    document.getElementById('username_feedback').parentNode.className = '';
    document.querySelector('[for=&quot;username&quot;] strong').innerHTML = '';
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;이 예제에서 표시된 메시지는 aria-live 속성 값이 polite 인 &amp;lt;span&amp;gt; 요소를 사용하여 코딩 되었습니다. 소위 &quot;라이브 영역(live region)&quot;이라고 하는 이 콘텐츠는 스크린 리더 및 기타 보조 기술에 전달됩니다. &quot;polite&quot; 값은 메시지의 중요성을 덜 강조하며 스크린 리더가 이 메시지를 소리내어 읽기 위해 현재 작업을 중단하지 않도록 합니다. 따라서 사용자가 키 입력을 할 때마다 메시지가 읽히는 것이 아니라 사용자가 입력을 멈출 때 한 번만 읽힙니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 2 : 확장된 피드백&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예는 성공 및 오류 메시지와 더불어 가능한 다양한 유형의 피드백을 보여줍니다. 이 예에서는 사용자가 비밀번호를 입력할 때 비밀번호의 강도를 확인합니다. 피드백은 비밀번호가 얼마나 강력한지 정도를 나타냅니다. 피드백은 색상 적용, '약함', '보통', '강함' 등의 라벨과 정도를 나타내는 간단한 그래픽, 비밀번호를 해독하는 데 필요한 시간 등 여러 가지 단서를 사용하여 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;다음 예제 입력 필드에서는 데이터가 전송되지 않습니다. 비밀번호는 데모용으로 일반 텍스트로 표시됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.40.21.png&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MexT4/btsmyWaBSF4/hPAc50gkDeXUFaFnVF9OyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MexT4/btsmyWaBSF4/hPAc50gkDeXUFaFnVF9OyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MexT4/btsmyWaBSF4/hPAc50gkDeXUFaFnVF9OyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMexT4%2FbtsmyWaBSF4%2FhPAc50gkDeXUFaFnVF9OyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1161&quot; height=&quot;63&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.40.21.png&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.41.06.png&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4lsGM/btsmzdJWVRe/kGq7BH72VsAyG93XNn4w0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4lsGM/btsmzdJWVRe/kGq7BH72VsAyG93XNn4w0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4lsGM/btsmzdJWVRe/kGq7BH72VsAyG93XNn4w0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4lsGM%2FbtsmzdJWVRe%2FkGq7BH72VsAyG93XNn4w0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1115&quot; height=&quot;65&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.41.06.png&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.41.50.png&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bscfkY/btsmyueqQAH/KkOAMUdjrvRbw3yAkKMwEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bscfkY/btsmyueqQAH/KkOAMUdjrvRbw3yAkKMwEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bscfkY/btsmyueqQAH/KkOAMUdjrvRbw3yAkKMwEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbscfkY%2FbtsmyueqQAH%2FKkOAMUdjrvRbw3yAkKMwEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;69&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.41.50.png&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;69&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.42.12.png&quot; data-origin-width=&quot;1124&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buMnPJ/btsmzICTC6n/9rApjfHpVYfATAGuPEgw9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buMnPJ/btsmzICTC6n/9rApjfHpVYfATAGuPEgw9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buMnPJ/btsmzICTC6n/9rApjfHpVYfATAGuPEgw9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuMnPJ%2FbtsmzICTC6n%2F9rApjfHpVYfATAGuPEgw9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1124&quot; height=&quot;65&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.42.12.png&quot; data-origin-width=&quot;1124&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.42.29.png&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w2Epf/btsmsbAchpD/kVFA1zQIcLvNzRGxylM6qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w2Epf/btsmsbAchpD/kVFA1zQIcLvNzRGxylM6qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w2Epf/btsmsbAchpD/kVFA1zQIcLvNzRGxylM6qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw2Epf%2FbtsmsbAchpD%2FkVFA1zQIcLvNzRGxylM6qK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1150&quot; height=&quot;65&quot; data-filename=&quot;스크린샷 2023-06-27 오후 11.42.29.png&quot; data-origin-width=&quot;1150&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비밀번호 입력 예제는 아래 링크에서 확인 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://www.w3.org/WAI/tutorials/forms/examples/password/&quot;&gt;https://www.w3.org/WAI/tutorials/forms/examples/password/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 3 : 초첨 변경 시&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대부분의 경우 오류 메시지가 표시되므로 사용자가 입력하는 동안 입력을 확인하는 것이 의미가 없는 경우도 있습니다. 날짜와 같은 특정 형식으로 데이터를 입력해야 하는 경우가 이에 해당합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예제에서는 사용자가 만료일을 입력해야 합니다. 사용자가 탭 키를 사용하여 포커스를 다음 필드로 이동하거나 다른 필드를 클릭하는 등 폼 필드를 떠날 때 입력이 확인됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.54.41.png&quot; data-origin-width=&quot;1276&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YPli7/btsmunmBl9v/6VNql1OKEKAB6IwaRszTQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YPli7/btsmunmBl9v/6VNql1OKEKAB6IwaRszTQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YPli7/btsmunmBl9v/6VNql1OKEKAB6IwaRszTQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYPli7%2FbtsmunmBl9v%2F6VNql1OKEKAB6IwaRszTQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1276&quot; height=&quot;112&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.54.41.png&quot; data-origin-width=&quot;1276&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.55.03.png&quot; data-origin-width=&quot;1278&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPsTs0/btsmsBsmYUy/Z2PTuGKDvrJrEpTwpiczJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPsTs0/btsmsBsmYUy/Z2PTuGKDvrJrEpTwpiczJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPsTs0/btsmsBsmYUy/Z2PTuGKDvrJrEpTwpiczJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPsTs0%2FbtsmsBsmYUy%2FZ2PTuGKDvrJrEpTwpiczJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1278&quot; height=&quot;116&quot; data-filename=&quot;스크린샷 2023-03-22 오후 5.55.03.png&quot; data-origin-width=&quot;1278&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534589410&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;label for=&quot;expire&quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;/strong&amp;gt; Expiry date:&amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot; name=&quot;expire&quot; id=&quot;expire&quot; value=&quot;03.2015&quot; aria-describedby=&quot;expDesc3&quot;&amp;gt;
  &amp;lt;span id=&quot;expDesc3&quot; aria-live=&quot;assertive&quot;&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;이 예제에서 표시된 메시지는 aria-live 속성의 값이 assertive 인 &amp;lt;span&amp;gt; 요소를 사용하여 코딩 되었습니다. 소위 &quot;라이브 영역(live region)&quot;이라고 하는 이 콘텐츠는 스크린 리더 및 기타 보조 기술에 전달됩니다. &quot;assertive&quot; 값은 메시지의 중요성을 강조하고 스크린 리더가 현재 진행 중인 작업을 중단하고 이 메시지를 소리내어 읽도록 합니다. 따라서 포커스를 받은 다음 요소가 사용자에게 알려지기 전에 메시지가 큰 소리로 읽혀집니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 페이지로 구성된 폼&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;가능하면&lt;span&gt; &lt;/span&gt;&lt;/span&gt;하나의 긴 폼은 논리적 순서나 단계를 구성하는 여러 개의 작은 폼으로 나누세요. 이렇게 하면 컴퓨터 사용 경험이 적거나 다양한 인지 장애가 있는 사람들이 긴 폼을 덜 어렵고 이해하기 쉽게 만들 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 페이지로 구성된 폼에는 다음과 같은 기본 원칙이 적용되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 페이지에서 전체 지침을 반복합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;컨트롤의 논리적 그룹에 따라 폼을 분할합니다. 예를 들어 온라인 상점에서는 일반적으로 배송 정보와 결제 정보가 분리되어 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;선택적 단계를 쉽게 인식하고 건너뛸 수 있도록 하세요. 예를 들어 웹 페이지의 기본 제목에 선택적 단계를 강조 표시하고 건너뛸 수 있는 옵션을 제공하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하면 폼 작성에 시간 제한을 설정하지 마세요. 시간 제한이 필요한 경우 사용자가 시간 제한을 조정하거나 연장할 수 있는 기능을 제공하세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;진행 상황 표시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능하면 폼의 첫 단계에서 전체 폼이 몇 개의 단계로 되어 있는지 설명해야 합니다. 각 단계는 사용자에게 진행 상황을 알려야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 페이지 타이틀 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;title&amp;gt; 요소는 스크린 리더 사용자와 같이 많은 사람들이 가장 먼저 읽는 항목입니다. 진행 상황을 포함하도록 페이지 제목을 변경하면 즉각적인 피드백이 제공됩니다. 이 정보는 단계 이름 또는 오류 알림과 같이 제목에 제공된 다른 정보 보다 먼저 표시되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-28 오전 12.49.56.png&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEKecN/btsmziLjGW4/23DU2rbIaErRdrXkkX3lp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEKecN/btsmziLjGW4/23DU2rbIaErRdrXkkX3lp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEKecN/btsmziLjGW4/23DU2rbIaErRdrXkkX3lp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEKecN%2FbtsmziLjGW4%2F23DU2rbIaErRdrXkkX3lp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;756&quot; height=&quot;32&quot; data-filename=&quot;스크린샷 2023-06-28 오전 12.49.56.png&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534826094&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;title&amp;gt;Step 2 of 4: Shipping Address &amp;ndash; Complete Purchase &amp;ndash; Galactic Teddy Bears Shop&amp;lt;/title&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : 주요 헤드라인 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주요 헤드라인을 사용하여 사용자에게 정보를 제공하는 것은 일반적으로 문서에서 기본 제목이 눈에 잘 띄기 때문에 페이지를 스캔하는 사람들에게 시각적으로 동일한 정보를 제공할 수 있는 좋은 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-28 오전 1.02.34.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I3F5x/btsmuqi22ZI/upFzZZMv0e1rkBHd9Dnf91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I3F5x/btsmuqi22ZI/upFzZZMv0e1rkBHd9Dnf91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I3F5x/btsmuqi22ZI/upFzZZMv0e1rkBHd9Dnf91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI3F5x%2Fbtsmuqi22ZI%2FupFzZZMv0e1rkBHd9Dnf91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;834&quot; height=&quot;57&quot; data-filename=&quot;스크린샷 2023-06-28 오전 1.02.34.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534882322&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h1&amp;gt;Shipping Address (Step 2 of 4)&amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 3 : HTML5 progress 요소 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML5는 사용자에게 진행 상황을 알리는 데 사용할 수 있는 &amp;lt;progress&amp;gt; 요소를 제공합니다. 이는 질문에 대한 답변에 따라 단계를 건너뛰는 설문조사와 같이 사용자 입력에 따라 단계 수가 달라지는 상황에서 특히 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-04 오후 4.00.01.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mqOTk/btsmseKsaSj/XDkVFti7EijkXmMhwwSjGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mqOTk/btsmseKsaSj/XDkVFti7EijkXmMhwwSjGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mqOTk/btsmseKsaSj/XDkVFti7EijkXmMhwwSjGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmqOTk%2FbtsmseKsaSj%2FXDkVFti7EijkXmMhwwSjGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;927&quot; height=&quot;303&quot; data-filename=&quot;스크린샷 2023-07-04 오후 4.00.01.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688534940697&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Survey &amp;lt;progress max=&quot;7&quot; value=&quot;1&quot;&amp;gt;(Step 1 of circa 7)&amp;lt;/progress&amp;gt;&amp;lt;br&amp;gt;
Survey &amp;lt;progress max=&quot;7&quot; value=&quot;2&quot;&amp;gt;(Step 2 of circa 7)&amp;lt;/progress&amp;gt;&amp;lt;br&amp;gt;
[&amp;hellip;]
Survey &amp;lt;progress max=&quot;7&quot; value=&quot;6&quot;&amp;gt;(Step 6 of circa 7)&amp;lt;/progress&amp;gt;&amp;lt;br&amp;gt;
Survey &amp;lt;progress max=&quot;7&quot; value=&quot;7&quot;&amp;gt;(Finished)&amp;lt;/progress&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;progress 요소는 다른 폼 요소와 마찬가지로 웹사이트에서 직접 렌더링되는 운영 체제의 구성 요소입니다. 이러한 구성 요소는 일부 운영 체제에서 애니메이션으로 표시되므로 사용자가 자동으로 시작되고 5초 이상 지속되며 다른 콘텐츠와 병렬로 표시되는 애니메이션을 비활성화할 수 있어야 한다는 WCAG의 &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/#pause-stop-hide&quot;&gt;2.2.2 일시 중지, 중지, 숨기기&lt;/a&gt; 성공 기준을 위반하게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애니메이션은 아래와 같이 브라우저별 CSS로 사용자 지정 스타일을 사용하여 중지할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688534972491&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* Microsoft IE */
progress {
  color: #036;
}

/* Apple Safari and Google Chrome */
progress::-webkit-progress-bar {
  background-color: #036;
}

/* Mozilla Firefox */
progress::-moz-progress-bar {
  background-color: #036;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 4 : 단계별 표시기 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼에 완료해야 할 단계 수가 알려진 경우 '단계별 표시기'를 사용하면 사용자가 방향을 잡는 데 도움이 될 수 있습니다. 아래 예에서는 모든 단계에 대해 목록 항목이 있는 정렬된 목록을 사용합니다. 시각적으로 숨겨진 텍스트를 사용하여 현재 단계와 완료된 단계를 표시합니다. 가능하면 이미 완료된 단계에 대한 링크를 제공하여 사용자가 검토할 수 있도록 하세요. 이 경우 현재 단계에 이미 입력된 데이터는 모두 저장되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-27 오후 2.13.29.png&quot; data-origin-width=&quot;1860&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AHUMO/btsmup5v9lB/SrbmRWtwve1t44KeHLaE60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AHUMO/btsmup5v9lB/SrbmRWtwve1t44KeHLaE60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AHUMO/btsmup5v9lB/SrbmRWtwve1t44KeHLaE60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHUMO%2Fbtsmup5v9lB%2FSrbmRWtwve1t44KeHLaE60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1860&quot; height=&quot;142&quot; data-filename=&quot;스크린샷 2023-03-27 오후 2.13.29.png&quot; data-origin-width=&quot;1860&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688535195701&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;tlwrapper&quot;&amp;gt;
  &amp;lt;ol class=&quot;timeline&quot;&amp;gt;
    &amp;lt;li class=&quot;timeline-past&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Completed: &amp;lt;/span&amp;gt;
      &amp;lt;a href=&quot;billing.html&quot;&amp;gt;Billing Address&amp;lt;/a&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li class=&quot;timeline-current&quot;&amp;gt;
      &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Current: &amp;lt;/span&amp;gt;
      &amp;lt;span&amp;gt;Shipping Address&amp;lt;/span&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;span&amp;gt;Review Order&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;span&amp;gt;Payment&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;span&amp;gt;Finish Purchase&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;/ol&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 지정 컨트롤&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폼이 있는 페이지를 디자인하다보면 표준 폼 컨트롤로 달성할 수 있는 것 이상의 무언가가 필요한 경우가 있습니다. 이러한 경우 표준 컨트롤에 추가 기능 및 스타일을 구축할 수 있습니다. 견고성을 보장하려면 최종 컨트롤이 처리하려는 기능의 하위 집합을 수행하는 HTML 요소를 재사용하고 거기서부터 빌드하세요. 다음 예제에서는 추가 기능의 접근성을 보장하기 위해 고려해야 할 사항에 대한 몇 가지 일반적인 지침을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드할 적절한 HTML 요소가 없는 컴포넌트의 경우 보조 기술을 사용하는 사람들을 위해 기능을 전달하는 데 WAI-ARIA 속성이 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 1 : 공유 버튼&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예는 두 가지 기능이 있는 소셜 미디어 '공유 버튼'을 보여줍니다. 이미 얼마나 많은 사람들이 버튼을 활성화했는지('공유') 표시하고 사용자가 버튼을 눌러 공유 기능을 활성화할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 지정 버튼은 CSS를 사용하여 일반 &amp;lt;button&amp;gt; 요소의 스타일을 지정하므로 CSS 없이 렌더링할 때 기본 기능이 그대로 유지됩니다. 예를 들어, 대부분의 화면 리더는 버튼과 해당 내용을 알립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 &amp;lt;form&amp;gt; 요소의 action 속성은 자바스크립트가 지원되지 않는 경우 동일한 기능을 수행하는 서버 측 스크립트를 참조합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-04 오후 4.18.34.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjziJH/btsmsOZg6eZ/7fcHDwhzoHO6kCbZTOso6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjziJH/btsmsOZg6eZ/7fcHDwhzoHO6kCbZTOso6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjziJH/btsmsOZg6eZ/7fcHDwhzoHO6kCbZTOso6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjziJH%2FbtsmsOZg6eZ%2F7fcHDwhzoHO6kCbZTOso6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;81&quot; data-filename=&quot;스크린샷 2023-07-04 오후 4.18.34.png&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688539122580&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;form action=&quot;path/to/submit&quot;&amp;gt;
  &amp;lt;button type=&quot;submit&quot; id=&quot;share-btn&quot; class=&quot;btn-primary&quot;&amp;gt;
    &amp;lt;span class=&quot;count&quot;&amp;gt;3&amp;lt;/span&amp;gt;
    &amp;lt;span class=&quot;text&quot;&amp;gt;Shares&amp;lt;/span&amp;gt;
  &amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688539156717&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.getElementById('share-btn').addEventListener('click', function(event){
  event.preventDefault();
  event.stopImmediatePropagation();

  var count = this.querySelector('.count');
  var text = this.querySelector('.text');

  count.textContent = parseInt(count.textContent) + 1;
  text.textContent = &quot;Shared ✓&quot;;

  this.setAttribute(&quot;disabled&quot;, &quot;true&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예제 2 : 별점&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 별점은 특정 항목을 평가하는 데 사용할 수 있는 별 5개 이미지로 구성됩니다. 마우스로 별을 가리키고 별을 클릭하면 별을 선택할 수 있습니다. 예를 들어 사용자가 왼쪽에서 세 번째 별을 클릭하면 해당 항목의 평점은 별 5개 중 3개가 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가능한 한 쉽게 액세스할 수 있도록 하기 위해 폼은 시각적으로 숨겨지는 필드를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 폼에는 각 별에 대해 각 하나의 라디오 버튼, 그리고 기본적으로 선택되어 있는 별 0개에 해당하는 라디오 버튼, 총 6개의 라디오 버튼이 포함되어 있습니다. 라디오 버튼의 레이블에는 실제 텍스트(&quot;별 1개&quot;, &quot;별 2개&quot;, ...)가 포함되며 시각적으로도 숨겨져 있습니다. 또한 폼에는 시각적으로 숨겨진 submit 버튼이 포함되어 있어 키보드 사용자가 라디오 버튼을 탐색할 때 폼이 자동으로 제출되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;별의 이미지는 SVG를 사용하여 생성됩니다. 이 별의 색상을 반영한 애니메이션은 마우스, 키보드 및 기타 입력 방법을 사용하여 활성화할 수 있도록 CSS :focus 및 :hover 가상 클래스를 통해 조정합니다. :checked 가상 클래스 및 일반 형제 선택자는 선택된 별, 활성화된 별, 비활성화된 별을 나타내는 데 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-27 오후 2.55.17.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d9ELfI/btsmsStNPxw/wkxIX8KDo8UNFV7yYNrU90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d9ELfI/btsmsStNPxw/wkxIX8KDo8UNFV7yYNrU90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d9ELfI/btsmsStNPxw/wkxIX8KDo8UNFV7yYNrU90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd9ELfI%2FbtsmsStNPxw%2FwkxIX8KDo8UNFV7yYNrU90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;104&quot; data-filename=&quot;스크린샷 2023-03-27 오후 2.55.17.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1688539447096&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;form action=&quot;#&quot; id=&quot;star_rating&quot;&amp;gt;
  &amp;lt;input value=&quot;0&quot; id=&quot;star0&quot; checked
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star0&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;0 Stars&amp;lt;/span&amp;gt;
    &amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;
      &amp;lt;g stroke-width=&quot;70&quot; stroke-linecap=&quot;square&quot;&amp;gt;
	    &amp;lt;path d=&quot;M91.5,442.5 L409.366489,124.633512&quot;&amp;gt;&amp;lt;/path&amp;gt;
	    &amp;lt;path d=&quot;M90.9861965,124.986197 L409.184248,443.184248&quot;&amp;gt;&amp;lt;/path&amp;gt;
	  &amp;lt;/g&amp;gt;
    &amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;input value=&quot;1&quot; id=&quot;star1&quot;
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star1&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;1 Star&amp;lt;/span&amp;gt;
    &amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;&amp;lt;path d=&quot;M512 198.525l-176.89-25.704-79.11-160.291-79.108 160.291-176.892 25.704 128 124.769-30.216 176.176 158.216-83.179 158.216 83.179-30.217-176.176 128.001-124.769z&quot;&amp;gt;&amp;lt;/path&amp;gt;&amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;input value=&quot;2&quot; id=&quot;star2&quot;
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star2&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;2 Stars&amp;lt;/span&amp;gt;
	&amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;&amp;hellip;&amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;input value=&quot;3&quot; id=&quot;star3&quot;
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star3&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;3 Stars&amp;lt;/span&amp;gt;
    &amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;&amp;hellip;&amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;input value=&quot;4&quot; id=&quot;star4&quot;
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star4&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;4 Stars&amp;lt;/span&amp;gt;
	&amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;&amp;hellip;&amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;input value=&quot;5&quot; id=&quot;star5&quot;
         type=&quot;radio&quot; name=&quot;rating&quot; class=&quot;visuallyhidden&quot;&amp;gt;
  &amp;lt;label for=&quot;star5&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;5 Stars&amp;lt;/span&amp;gt;
    &amp;lt;svg viewBox=&quot;0 0 512 512&quot;&amp;gt;&amp;hellip;&amp;lt;/svg&amp;gt;
  &amp;lt;/label&amp;gt;

  &amp;lt;button type=&quot;submit&quot; class=&quot;btn-small visuallyhidden focusable&quot;&amp;gt;Submit rating&amp;lt;/button&amp;gt;

  &amp;lt;output&amp;gt;&amp;lt;/output&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688539522917&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#star_rating svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
  stroke: currentColor;
}
#star_rating label, #star_rating output {
  display: block;
  float: left;
  font-size: 2em;
  height: 1.2em;
  color: #036;
  cursor: pointer;
  /* Transparent border-bottom avoids jumping
     when a colored border is applied
     on :hover/:focus */
  border-bottom: 2px solid transparent;
}
#star_rating output {
  font-size: 1.5em;
  padding: 0 1em;
}
#star_rating input:checked ~ label {
  color: #999;
}
#star_rating input:checked + label {
  color: #036;
  border-bottom-color: #036;
}
#star_rating input:focus + label {
  border-bottom-style: dotted;
}
#star_rating:hover input + label {
  color: #036;
}
#star_rating input:hover ~ label,
#star_rating input:focus ~ label,
#star_rating input[id=&quot;star0&quot;] + label {
  color: #999;
}
#star_rating input:hover + label,
#star_rating input:focus + label {
  color: #036;
}
#star_rating input[id=&quot;star0&quot;]:checked + label {
  color: #ff2d21;
}
#star_rating [type=&quot;submit&quot;] {
  float: none;
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1688539568252&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var radios = document.querySelectorAll('#star_rating input[type=radio]');
var output = document.querySelector('#star_rating output');

var do_something = function(stars) {
  // An AJAX request could send the data to the server
  output.textContent = stars;
};

// Iterate through all radio buttons and add a click
// event listener to the labels
Array.prototype.forEach.call(radios, function(el, i){
  var label = el.nextSibling.nextSibling;
  label.addEventListener(&quot;click&quot;, function(event){
    do_something(label.querySelector('span').textContent);
  });
});

// If the form gets submitted, do_something
document.querySelector('#star_rating').addEventListener('submit', function(event){
  do_something(document.querySelector('#star_rating :checked ~ label span').textContent);
  event.preventDefault();
  event.stopImmediatePropagation();
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 글은&amp;nbsp;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>form</category>
      <category>html</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/9</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form#entry9comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:17:47 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 5. 테이블(표)</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPHGDI/btskSRvuxhc/W43vZNau0mKSM4jVvvEOQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPHGDI/btskSRvuxhc/W43vZNau0mKSM4jVvvEOQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPHGDI/btskSRvuxhc/W43vZNau0mKSM4jVvvEOQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPHGDI%2FbtskSRvuxhc%2FW43vZNau0mKSM4jVvvEOQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터 표는 그리드에서 논리적 관계로 데이터를 구성하는 데 사용됩니다. 접근 가능한 표에는 헤더 셀과 데이터 셀을 나타내고 그 관계를 정의하는 HTML 마크업이 필요합니다. 보조 기술은 이 정보를 사용하여 사용자에게 컨텍스트를 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;표에 액세스할 수 있도록 하려면 헤더 셀은 &amp;lt;th&amp;gt;로, 데이터 셀은 &amp;lt;td&amp;gt;로 마크업해야 합니다. &lt;br /&gt;보다 복잡한 테이블의 경우 scope, id 및 headers 속성을 사용하여 명시적인 연결이 필요할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 자습서에서는 표에 적절한 구조적 마크업을 적용하는 방법을 보여줍니다. 여기에는 다음 페이지가 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.15.53.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrFJh8%2FbtskA5AdzPw%2FXuOFsEMHwYtKQWa5KNtP0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;124&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.15.53.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;행 또는 열에 대해 하나의 헤더가 있는 표&lt;/b&gt;&lt;br /&gt;구분하기 쉬운 콘텐츠가 있는 표의 경우 헤더 셀은 &amp;lt;th&amp;gt;로, 데이터 셀은 &amp;lt;td&amp;gt; 요소로 표시합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.16.21.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQKOKK%2FbtskAWjePqa%2FiMK7cxEjGdrsLE9Wdbpk01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;125&quot; height=&quot;124&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.16.21.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 두 개인 표에는 행 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 열  &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더를&lt;/span&gt; 사용&lt;/b&gt;합니다. &lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 방향이 불분명한 테이블의 경우 scope 속성을 열 또는 행으로 설정하여 각 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt;의 방향을 정의합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.04.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxQJP9%2FbtskuQc1oUr%2FXu2SiDU9OLpeBvjZkYKXe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;124&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.04.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;불규칙한 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 있는 테이블에는 여러 열 또는 행에 걸쳐 있는 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀이 있습니다.&lt;/b&gt;&amp;nbsp;&lt;br /&gt;이러한 테이블의 경우 열 및 행 그룹을 정의하고 scope 속성의 colgroup 및 rowgroup 값을 사용하여 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀의 범위를 설정합니다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.27.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdME9JA%2FbtskrnPNBD5%2FKV123DAsTvCd6MVZ4PTkK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;123&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.27.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;다단계 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 있는 테이블에는 데이터 셀당 여러 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀이 연결&lt;/b&gt;되어 있습니다. &lt;br /&gt;너무 복잡하여 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀을 엄격하게 가로 또는 세로로 연결할 수 없는 테이블의 경우 ID 및 headers 속성을 사용하여 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 데이터 셀을 명시적으로 연결합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.18.19.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FntHTq%2FbtskrboeKtA%2FgibnsgWkVM9ABskjlRwoz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;123&quot; height=&quot;118&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.18.19.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;캡션 및 요약&lt;/b&gt; &lt;br /&gt;캡션은 표의 전체 주제를 식별하며 대부분의 상황에서 유용합니다. 요약은 복잡한 표에서 방향 또는 탐색 힌트를 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PDF와 같은 HTML 이외의 일부 문서 형식은 표 구조 마크업과 유사한 메커니즘을 제공합니다. 워드 프로세싱 애플리케이션도 표를 마크업하는 메커니즘을 제공할 수 있습니다. 한 형식에서 다른 형식으로 변환할 때 표 마크업이 손실되는 경우가 많지만 일부 프로그램에서는 표 마크업 변환을 지원하는 기능을 제공할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;많은 웹 작성 도구와 콘텐츠 관리 시스템(CMS)은 코드를 수동으로 편집하지 않고도 표를 작성하는 동안 헤더 셀을 정의하는 기능을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 자습서에서는 그리드에 데이터를 표시하는 데 사용되는 표를 만드는 방법에 대한 지침을 제공합니다. &lt;br /&gt;이 자습서는 레이아웃에 사용되는 테이블에는 적용되지 않습니다. 일반적으로 표는 레이아웃 용도로 사용되지 않습니다. 대신 시각적 프레젠테이션을 위해 CSS(Cascading Style Sheet)를 사용하는 것이 가장 좋습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;이것이 왜 중요할까요?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 데이터 셀을 구분하여 적절하게 연결되도록 구조적 마크업이 반영되지 않은 표는 접근성 장벽을 만듭니다. 시각적 단서에만 의존하는 것만으로는 접근성 높은 표를 만들 수 없습니다. 구조적 마크업을 사용하면 헤더와 데이터 셀을 소프트웨어에서 프로그래밍 방식으로 결정할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스크린 리더 사용자&lt;/b&gt;는 표를 탐색할 때 행과 열 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더를&lt;/span&gt; 소리내어 읽을 수 있습니다. 스크린 리더는 한 번에 한 셀씩 말하고 관련 헤더 셀을 참조하므로 사용자가 문맥을 잃지 않습니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자 지정 스타일시트를 사용하여 &lt;b&gt;헤더&amp;nbsp;셀을 더 눈에 잘 띄게 표시하는 등 데이터를 렌더링하는 다른 방법을 사용하는 사람&lt;/b&gt;들도 있습니다. 이러한 기법을 사용하면 텍스트 크기와 색상을 변경하고 정보를 그리드가 아닌 목록으로 표시할 수 있습니다. 대체 렌더링을 허용하려면 테이블 코드가 적절하게 구조화되어 있어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하나의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.15.53.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brFJh8/btskA5AdzPw/XuOFsEMHwYtKQWa5KNtP0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrFJh8%2FbtskA5AdzPw%2FXuOFsEMHwYtKQWa5KNtP0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;124&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.15.53.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 페이지에서는 행에 하나의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 혹은 열에 하나의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 있는 표를 다룹니다. 이러한 테이블의 데이터는 그 자체로 설명적이며 모호하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 콘텐츠가 모호하거나 열의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 행의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 모두 있는 경우 혼동을 피하기 위해 범위 속성을 사용해야 합니다. 이러한 표에 대한 자세한 지침은 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 두 개인 표를 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 최상단 행에만 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀이 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 콘서트 표에는 첫 번째 행의 셀이 &amp;lt;th&amp;gt; 요소를 사용하여 마크업되어 있습니다. 이 표는 매우 작은 표이고 데이터 자체가 각 열에서 뚜렷하게 다르기 때문에 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 데이터 셀 간의 관계가 분명하기 때문에 허용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;일부 스크린 리더에서는 &amp;lt;th&amp;gt; 요소의 방향이 모호하기 때문에 &quot;장소&quot; 셀에서 &quot;날짜-이벤트-장소&quot;로 읽힙니다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.18.18.png&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6PyFb/btskAWXQyww/ge9KSK0Np906hlXpOAqFRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6PyFb/btskAWXQyww/ge9KSK0Np906hlXpOAqFRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6PyFb/btskAWXQyww/ge9KSK0Np906hlXpOAqFRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6PyFb%2FbtskAWXQyww%2Fge9KSK0Np906hlXpOAqFRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;249&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.18.18.png&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;249&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687154848658&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;날짜&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;이벤트&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;장소&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;12 February&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Waltz with Strauss&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Main Hall&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  [&amp;hellip;]
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 첫 번째 열에만 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀이 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 표에서는 이전 예제의 데이터가 왼쪽에 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 열이 있는 상태로 배치되어 있습니다. 이 상황에서도 작고 간단한 테이블이기 때문에 이 코드만 사용할 수 있습니다. 이 튜토리얼의 다음 페이지에서는 더 복잡한 테이블을 코딩하는 방법을 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.20.45.png&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgiz4G/btskyotPpgM/nDsGaB2j484KNQWSgnARSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgiz4G/btskyotPpgM/nDsGaB2j484KNQWSgnARSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgiz4G/btskyotPpgM/nDsGaB2j484KNQWSgnARSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgiz4G%2FbtskyotPpgM%2FnDsGaB2j484KNQWSgnARSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;198&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.20.45.png&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687154922972&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;날짜&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;12 February&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;24 March&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;14 April&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;이벤트&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Waltz with Strauss&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;The Obelisks&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;The What&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;장소&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Main Hall&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;West Wing&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Main Hall&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 모호한 데이터가 있는 표 &lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예제에서는 데이터(이름, 성, 도시)가 각각 어떤 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt;에 해당하는지 알지 못하면 서로 구분할 수 없습니다. 값이 col인 scope 속성은 헤더 셀의 방향을 정의하고 해당 데이터 셀과 연결합니다. scope 속성은 헤더 행 또는 열이 하나인 큰 테이블에도 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.25.16.png&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKwSpg/btskyQDPlG4/8ujTEghIGRWiZVwh3hl1rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKwSpg/btskyQDPlG4/8ujTEghIGRWiZVwh3hl1rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKwSpg/btskyQDPlG4/8ujTEghIGRWiZVwh3hl1rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKwSpg%2FbtskyQDPlG4%2F8ujTEghIGRWiZVwh3hl1rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;775&quot; height=&quot;239&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.25.16.png&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;239&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687154990137&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;caption&amp;gt;테디 베어 수집가:&amp;lt;/caption&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;성&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;이름&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;도시&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Phoenix&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Imari&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Henry&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Zeki&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Rome&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Min&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Apirka&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Kelly&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Brynn&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;두 개의 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt;&amp;nbsp;있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.16.21.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QKOKK/btskAWjePqa/iMK7cxEjGdrsLE9Wdbpk01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQKOKK%2FbtskAWjePqa%2FiMK7cxEjGdrsLE9Wdbpk01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;125&quot; height=&quot;124&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.16.21.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 페이지에서는 행 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 열 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 있는 표를 다룹니다. &lt;br /&gt;이러한 테이블에서는 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더와&lt;/span&gt; 데이터 셀 간의 관계가 금방 모호해집니다. 이러한 테이블의 경우 &amp;lt;th&amp;gt; 요소를 사용하여 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt; 셀을 식별하고 scope속성을 사용하여 각 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더&lt;/span&gt;의 방향을 선언합니다. scope 속성을 row 또는 col로 설정하여 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;헤더가&lt;/span&gt; 각각 전체 행 또는 열에 적용됨을 나타낼 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 &amp;lt;caption&amp;gt; 요소를 사용하여 문서에서 표를 식별할 수 있습니다. 이 요소는 표에서 표로 이동할 수 있는 '표 모드'로 웹 페이지를 탐색하는 스크린 리더 사용자에게 특히 유용합니다. &amp;lt;caption&amp;gt; 요소 사용에 대한 자세한 배경 및 지침은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#%EC%BA%A1%EC%85%98%20%26%20%EC%9A%94%EC%95%BD-1&quot;&gt;캡션 및 요약 항목&lt;/a&gt;에서 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 맨 윗줄과 첫 번째 열에 헤더 셀이 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 개장 시간 표에는 맨 위 행과 첫 번째 열에 헤더 정보가 있습니다. 모든 헤더 셀은 scope 속성이 추가된 &amp;lt;th&amp;gt; 셀로 마크업됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;헤더 행에서 scope의 col 값은 각 헤더 셀을 열의 데이터 셀과 연결합니다. 헤더 열에서 행 값은 개별 헤더를 해당 행과 연결합니다. 이 정보가 없으면 일부 사용자는 헤더와 데이터 셀 간의 관계를 쉽게 이해하지 못할 수 있습니다. 아래 예에서 'Open' 및 'Closed' 레이블은 특정 요일과 시간에 할당할 수 있는 경우에만 유용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.33.06.png&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RtTTA/btskk8TaIDm/Hc6imMBhGruZK4iheLpyMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RtTTA/btskk8TaIDm/Hc6imMBhGruZK4iheLpyMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RtTTA/btskk8TaIDm/Hc6imMBhGruZK4iheLpyMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRtTTA%2Fbtskk8TaIDm%2FHc6imMBhGruZK4iheLpyMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;727&quot; height=&quot;291&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.33.06.png&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687155254272&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;월요일&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;화요일&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;수요일&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;목요일&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;금요일&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;09:00 &amp;ndash; 11:00&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;11:00 &amp;ndash; 13:00&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;13:00 &amp;ndash; 15:00&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;15:00 &amp;ndash; 17:00&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Closed&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Open&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 헤더 셀의 오프셋 열이 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 표에서는 행 헤더 셀이 첫 번째 열이 아닌 두 번째 열에 있습니다. 접근 방식은 위의 예와 유사합니다: 맨 위 행에 있는 헤더 셀의 scope는 col로 설정됩니다. scope의 row 값을 사용하면 두 번째 열의 헤더 셀이 개별 헤더 셀의 왼쪽과 오른쪽에 있는 데이터 셀에 할당됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.37.10.png&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpVnUi/btskrnI4ldN/Mho2cSEAtCEKypZMvwI6aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpVnUi/btskrnI4ldN/Mho2cSEAtCEKypZMvwI6aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpVnUi/btskrnI4ldN/Mho2cSEAtCEKypZMvwI6aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpVnUi%2FbtskrnI4ldN%2FMho2cSEAtCEKypZMvwI6aK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;340&quot; data-filename=&quot;스크린샷 2023-06-12 오후 2.37.10.png&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687155572396&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;caption&amp;gt;
    지난 6개월 동안 사용한 휴일
  &amp;lt;/caption &amp;gt;
  &amp;lt;thead&amp;gt;
    &amp;lt;tr&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;&amp;lt;abbr title=&quot;Identification Number&quot;&amp;gt;ID&amp;lt;/abbr&amp;gt;&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;이름&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;7월&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;8월&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;9월&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;10월&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;11월&amp;lt;/th&amp;gt;
      &amp;lt;th scope=&quot;col&quot;&amp;gt;12월&amp;lt;/th&amp;gt;
    &amp;lt;/tr&amp;gt;
  &amp;lt;/thead&amp;gt;

  &amp;lt;tbody&amp;gt;
    &amp;lt;tr&amp;gt;
      &amp;lt;td&amp;gt;215&amp;lt;/td&amp;gt;
      &amp;lt;th scope=&quot;row&quot;&amp;gt;Abel&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;

    &amp;lt;tr&amp;gt;
      &amp;lt;td&amp;gt;231&amp;lt;/td&amp;gt;
      &amp;lt;th scope=&quot;row&quot;&amp;gt;Annette &amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;

    &amp;lt;tr&amp;gt;
      &amp;lt;td&amp;gt;173&amp;lt;/td&amp;gt;
      &amp;lt;th scope=&quot;row&quot;&amp;gt;Bernard&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;

    &amp;lt;tr&amp;gt;
      &amp;lt;td&amp;gt;141&amp;lt;/td&amp;gt;
      &amp;lt;th scope=&quot;row&quot;&amp;gt;Gerald&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;

    &amp;lt;tr&amp;gt;
      &amp;lt;td&amp;gt;99&amp;lt;/td&amp;gt;
      &amp;lt;th scope=&quot;row&quot;&amp;gt;Michael&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
  &amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;불규칙한 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.04.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxQJP9/btskuQc1oUr/Xu2SiDU9OLpeBvjZkYKXe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxQJP9%2FbtskuQc1oUr%2FXu2SiDU9OLpeBvjZkYKXe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;124&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.04.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 페이지에서는 여러 열 또는 행에 걸쳐 있는 헤더 셀이 있는 표에 대해 설명합니다. 여러 요소와 속성을 사용하여 헤더 및 데이터 셀의 구조와 관계를 정의할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 세 개의 열에 걸쳐 있는 헤더 셀은 열 그룹의 해당 데이터 셀과 연결되어야 합니다. 헤더 셀의 scope 속성을 colgroup 값으로 설정하면 이 작업을 수행할 수 있습니다. 여러 행에 걸쳐 있는 헤더 셀에도 동일한 원칙이 적용됩니다. 이 경우 scope 속성에 rowgroup 값을 사용하여 연결합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그러나 이러한 연결을 만들기 전에 테이블 마크업에서 이러한 열 및 행 그룹의 구조를 정의해야 합니다:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;열 그룹은 &amp;lt;colgroup&amp;gt; 요소를 사용하여 정의합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;행 그룹은 &amp;lt;thead&amp;gt;, &amp;lt;tfoot&amp;gt; 및 &amp;lt;tbody&amp;gt; 요소로 정의됩니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;thead&amp;gt; 및 &amp;lt;tfoot&amp;gt; 요소는 테이블에서 한 번만 사용할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블에는 각각 행 그룹을 정의하는 &amp;lt;tbody&amp;gt; 요소가 얼마든지 포함될 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 두 단계에 걸쳐 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 표에는 두 쌍의 열 헤더가 있습니다. 각 열 헤더 쌍인 &quot;생산됨&quot; 및 &quot;판매됨&quot;은 해당 쌍을 식별하는 첫 번째 단계 헤더와 연결됩니다: &quot;Mars&quot; 및 &quot;Venus&quot;입니다. 이러한 첫 번째 단계 헤더는 값이 2인 colspan 속성을 사용하여 두 열에 걸쳐 있도록 만들어집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;첫 번째 단계 헤더를 두 열의 모든 셀과 올바르게 연결하려면 테이블의 시작 부분에 열 구조를 정의해야 합니다. &amp;lt;col&amp;gt; 요소는 왼쪽부터 시작하여 각 열을 식별합니다. 헤더가 두 개 이상의 열에 걸쳐 있는 경우 해당 수의 &amp;lt;col&amp;gt; 요소 대신 &amp;lt;colgroup&amp;gt; 요소를 사용하면 span 속성에 걸쳐 있는 열의 수가 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 첫 번째 단계 헤더의 scope 속성 값은 전체 열 그룹과 연결되도록 colgroup으로 설정됩니다. 두 번째 단계 헤더는 해당 열에만 적용되므로 scope 속성은 이전 예제에서와 같이 col로 설정됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.43.27.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G3RMv/btskll54ry5/8DDiCnXxcYS81nBGPlioOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G3RMv/btskll54ry5/8DDiCnXxcYS81nBGPlioOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G3RMv/btskll54ry5/8DDiCnXxcYS81nBGPlioOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG3RMv%2Fbtskll54ry5%2F8DDiCnXxcYS81nBGPlioOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;812&quot; height=&quot;210&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.43.27.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687155723471&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;col&amp;gt;
  &amp;lt;colgroup span=&quot;2&quot;&amp;gt;&amp;lt;/colgroup&amp;gt;
  &amp;lt;colgroup span=&quot;2&quot;&amp;gt;&amp;lt;/colgroup&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td rowspan=&quot;2&quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;th colspan=&quot;2&quot; scope=&quot;colgroup&quot;&amp;gt;Mars&amp;lt;/th&amp;gt;
    &amp;lt;th colspan=&quot;2&quot; scope=&quot;colgroup&quot;&amp;gt;Venus&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;생산됨&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;판매됨&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;생산됨&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;판매됨&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;Teddy Bears&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;50,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;30,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;100,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;80,000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;row&quot;&amp;gt;Board Games&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;10,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;5,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;12,000&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;9,000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;&amp;lt;colgroup&amp;gt; 요소에는 그룹의 개별 열을 식별하는 &amp;lt;col&amp;gt; 요소가 포함될 수 있습니다. &amp;lt;colgroup&amp;gt; 요소에 포함되지 않은 &amp;lt;col&amp;gt; 요소와 &amp;lt;colgroup&amp;gt; 요소의 span 속성으로 표시된 열 요소의 합은 테이블의 총 열 수와 같아야 합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 여러 행 또는 열에 걸쳐 있는 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예제에서 테이블은 두 개의 개별 열과 세 개의 열에 걸쳐 있는 하나의 열 그룹으로 구성됩니다. 행은 6개입니다. 여러 행에 걸쳐 있는 두 개의 헤더. 여러 행에 걸쳐 있는 헤더 셀이 해당 행의 모든 셀과 올바르게 연결되도록 하려면 행을 그룹화해야 합니다. 행 그룹을 정의하려면 해당 행을 &amp;lt;tbody&amp;gt; 요소로 래핑합니다. 또한 행에 걸쳐 있는 헤더 셀의 scope 속성을 rowgroup으로 설정해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;헤더가 여러 헤더 행에 걸쳐 있는 경우 &amp;lt;tbody&amp;gt; 요소 대신 &amp;lt;thead&amp;gt; 요소로 행을 래핑합니다. 헤더가 표의 푸터 영역에서 여러 행에 걸쳐 있는 경우 &amp;lt;tfoot&amp;gt; 요소를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;표가 복잡하기 때문에 표의 레이아웃을 자세히 설명하기 위해 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#%EC%BA%A1%EC%85%98%20%26%20%EC%9A%94%EC%95%BD-1&quot;&gt;요약 기법&lt;/a&gt;을 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.50.12.png&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P5Mvr/btskBB6LP6f/s4DJDWKYpkXXIkBkKSosB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P5Mvr/btskBB6LP6f/s4DJDWKYpkXXIkBkKSosB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P5Mvr/btskBB6LP6f/s4DJDWKYpkXXIkBkKSosB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP5Mvr%2FbtskBB6LP6f%2Fs4DJDWKYpkXXIkBkKSosB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;338&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.50.12.png&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687156021188&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;caption&amp;gt;
    Poster availability
  &amp;lt;/caption&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;Poster name&amp;lt;/th&amp;gt;
    &amp;lt;th scope=&quot;col&quot;&amp;gt;Color&amp;lt;/th&amp;gt;
    &amp;lt;th colspan=&quot;3&quot; scope=&quot;colgroup&quot;&amp;gt;Sizes available&amp;lt;/th&amp;gt;
    &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th rowspan=&quot;3&quot; scope=&quot;rowgroup&quot;&amp;gt;Zodiac&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Full color&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A2&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A4&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Black and white&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A1&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A2&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Sepia&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A4&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A5&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th rowspan=&quot;2&quot; scope=&quot;rowgroup&quot;&amp;gt;Angels&amp;lt;/th&amp;gt;
    &amp;lt;td&amp;gt;Black and white&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A1&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A4&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Sepia&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A2&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;A5&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;열을 가로지르는헤더가 없더라도 모든 표에 &amp;lt;thead&amp;gt;, &amp;lt;tbody&amp;gt; 및 &amp;lt;tfoot&amp;gt;를 사용하면 언제 사용해야 하는지 혼동을 피할 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다단계 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.27.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dME9JA/btskrnPNBD5/KV123DAsTvCd6MVZ4PTkK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdME9JA%2FbtskrnPNBD5%2FKV123DAsTvCd6MVZ4PTkK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;123&quot; height=&quot;123&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.17.27.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 페이지에서는 데이터 셀마다 다단계 헤더 셀이 연결된 테이블을 다룹니다. 이러한 테이블은 너무 복잡하여 헤더와 데이터 셀 간의 엄격한 수평 또는 수직 연결을 식별하기 어렵습니다. 이러한 테이블에서 각 테이블 헤더는 (문서 전체에 걸친) 고유 id로 표시됩니다. 데이터 셀은 headers 속성에 공백으로 구분된 하나 이상의 id를 나열하여 해당 id를 참조합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이러한 방식으로 마크업해야 하는 테이블에는 다음이 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 중간에 반복되거나 변경되는 열 헤더가 있는 테이블&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 데이터 셀에 연결된 헤더 셀이 3개 이상인 테이블&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 헤더가 있는 표에는 표를 식별하는 캡션과 표의 레이아웃을 설명하는 요약이 필요할 수도 있습니다. (&lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#%EC%BA%A1%EC%85%98%20%26%20%EC%9A%94%EC%95%BD-1&quot;&gt;캡션 및 요약&lt;/a&gt; 참조).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;많은 경우, 예 3)에 표시된 것처럼 정보를 더 작고 관리하기 쉬운 테이블로 분할하여 모든 독자가 덜 복잡하게 만들 수 있도록 이러한 테이블의 정보를 재구성하는 것을 고려할 가치가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 각 열에 여러 열 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 표에서 표의 상단 절반에 대한 헤더는 하단 절반의 헤더와 다릅니다. 테이블 중간에 헤더가 변경되어 열의 헤더가 모호해집니다. 각 데이터 셀이 올바른 헤더에 연결되도록 하기 위해 각 &amp;lt;th&amp;gt; 요소에는 고유 id가 있고 각 &amp;lt;td&amp;gt; 셀에는 연결된 헤더 셀의 id 값을 나열하는 headers 속성이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.56.35.png&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4pFwD/btskizwJxNz/EOJ3trdmaGTdF3ewYC7Oo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4pFwD/btskizwJxNz/EOJ3trdmaGTdF3ewYC7Oo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4pFwD/btskizwJxNz/EOJ3trdmaGTdF3ewYC7Oo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4pFwD%2FbtskizwJxNz%2FEOJ3trdmaGTdF3ewYC7Oo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;437&quot; data-filename=&quot;스크린샷 2023-06-12 오후 3.56.35.png&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 코드 스니펫에서는 헤더 셀 자체의 헤더가 빈 셀로 설정되어 있습니다(ID가 &quot;blank&quot;인 경우). 이렇게 하면 일부 보조 기술이 해당 헤더 셀의 헤더를 읽지 못합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;th&amp;gt; 셀에 id 속성 할당하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1687156191753&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[&amp;hellip;]
&amp;lt;td id=&quot;blank&quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
&amp;lt;th id=&quot;co1&quot; headers=&quot;blank&quot;&amp;gt;Example 1 Ltd&amp;lt;/th&amp;gt;
&amp;lt;th id=&quot;co2&quot; headers=&quot;blank&quot;&amp;gt;Example 2 Co&amp;lt;/th&amp;gt;
[&amp;hellip;]
&amp;lt;th id=&quot;c1&quot; headers=&quot;blank&quot;&amp;gt;Contact&amp;lt;/th&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;td&amp;gt; 셀에 headers 속성 할당하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1687156211234&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[&amp;hellip;]
&amp;lt;td headers=&quot;co1 c1&quot;&amp;gt;James Phillips&amp;lt;/td&amp;gt;
&amp;lt;td headers=&quot;co2 c1&quot;&amp;gt;Marie Beauchamp&amp;lt;/td&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 각 데이터 셀과 관련된 3개의 헤더가 있는 표&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서 테이블 헤더는 테이블의 다음 섹션에 대한 내용을 설명하는 부제목으로 사용됩니다. 이러한 헤더가 없으면 정보가 불분명할 수 있습니다. headers 속성을 사용하면 세 개의 헤더를 모두 데이터 셀에 적절하게 연결할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.00.25.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;486&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXiIlu/btskyn9y0S0/uutfe1j4c9K7muyiKKGhk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXiIlu/btskyn9y0S0/uutfe1j4c9K7muyiKKGhk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXiIlu/btskyn9y0S0/uutfe1j4c9K7muyiKKGhk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXiIlu%2Fbtskyn9y0S0%2Fuutfe1j4c9K7muyiKKGhk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;486&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.00.25.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;486&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;th&amp;gt; 셀에 id 속성 할당하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1687156306727&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[&amp;hellip;]
  &amp;lt;th id=&quot;par&quot; colspan=&quot;5&quot; scope=&quot;colgroup&quot;&amp;gt;Paris&amp;lt;/th&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;tr&amp;gt;
  &amp;lt;th id=&quot;pbed1&quot;&amp;gt;1 bedroom&amp;lt;/th&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;td&amp;gt; 셀에 headers 속성 할당하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1687156323182&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[&amp;hellip;]
&amp;lt;td headers=&quot;par pbed1 stud&quot;&amp;gt;11&amp;lt;/td&amp;gt;
&amp;lt;td headers=&quot;par pbed1 apt&quot;&amp;gt; 20&amp;lt;/td&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 다단계 테이블 분할&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 두 테이블은 위 예제의 다단계 테이블과 동일한 정보를 제공합니다. 이렇게 하면 누구나 정보를 더 쉽게 이해하고 코딩하기 쉬워집니다. 또한 간단한 표는 WYSIWYG(&quot;What you see is what you get&amp;rdquo;) 편집기를 비롯한 웹 콘텐츠 작성 도구에서 훨씬 더 잘 지원됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.03.20.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OJIGR/btskA7LzM5f/xVzel7hefabnywH21iKUuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OJIGR/btskA7LzM5f/xVzel7hefabnywH21iKUuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OJIGR/btskA7LzM5f/xVzel7hefabnywH21iKUuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOJIGR%2FbtskA7LzM5f%2FxVzel7hefabnywH21iKUuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;539&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.03.20.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;539&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캡션 &amp;amp; 요약&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.18.19.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ntHTq/btskrboeKtA/gibnsgWkVM9ABskjlRwoz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FntHTq%2FbtskrboeKtA%2FgibnsgWkVM9ABskjlRwoz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;123&quot; height=&quot;118&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.18.19.png&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캡션과 요약은 사용자가 표를 찾고, 탐색하고, 이해하는 데 도움이 되는 정보를 제공합니다. 모든 경우에 캡션과 요약이 WCAG를 준수해야 하는 것은 아니지만, 캡션과 요약은 종종 필요한 정보를 제공하는 매우 간단한 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캡션은 표의 제목과 같은 기능을 합니다. &lt;br /&gt;대부분의 스크린 리더는 캡션의 내용을 알려줍니다. 캡션은 사용자가 표를 찾고 표의 내용을 이해하여 읽을지 여부를 결정하는 데 도움이 됩니다. 사용자가 '표 모드'를 사용하는 경우 캡션은 표를 식별하는 기본 메커니즘입니다. 캡션은 &amp;lt;caption&amp;gt; 요소로 제공됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요약은 표의 데이터 구성에 대한 정보를 전달하고 사용자가 표를 탐색하는 데 도움이 됩니다. &lt;br /&gt;예를 들어 아래 예시에서와 같이 테이블의 구조가 비정상적인 경우 어떤 행 또는 열에서 어떤 콘텐츠를 찾을 수 있는지에 대한 정보를 사용자에게 제공할 수 있습니다. 요약은 일반적으로 복잡한 테이블에만 필요합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하나의 표에 캡션과 요약이 모두 제공되는 경우 요약은 캡션에 있는 정보와 중복되지 않아야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캡션에 대한 자세한 내용은 &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/Techniques/html/H39&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;캡션 요소를 사용하여 데이터 테이블 캡션과 데이터 테이블 연결하기&lt;/a&gt;를 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 캡션을 사용하여 테이블 식별&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;캡션은 테이블 콘텐츠에 대한 짧은 제목이어야 합니다. 이 예에서 &quot;콘서트&quot;는 사용자에게 테이블에 어떤 정보가 있는지 알려줍니다(예: 테이블에 미술 전시회 정보도 포함될 수 있음).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;caption&amp;gt; 요소는 &amp;lt;table&amp;gt; 요소의 하위 요소로 직접 배치됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.19.18.png&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Orfnl/btskk8TcXyf/b9Y11usLgvQYRmLPODjgKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Orfnl/btskk8TcXyf/b9Y11usLgvQYRmLPODjgKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Orfnl/btskk8TcXyf/b9Y11usLgvQYRmLPODjgKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOrfnl%2Fbtskk8TcXyf%2Fb9Y11usLgvQYRmLPODjgKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;240&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.19.18.png&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687156520467&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;caption&amp;gt;Concerts&amp;lt;/caption&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;Date&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Event&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Venue&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;12 Feb&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Waltz with Strauss&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Main Hall&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  [&amp;hellip;]
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 더 복잡한 표에 대한 요약&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예에서는 사용자에게 요약을 제공하기 위해 다양한 기법이 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 1.&amp;nbsp; &amp;lt;caption&amp;gt; 요소 안에 요약 중첩하기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 복잡한 표는 두 개의 별도 위치에서 다양한 유형과 크기의 숙박시설의 이용 가능 여부를 보여줍니다. &amp;lt;caption&amp;gt; 요소는 표의 제목 역할을 하며 표의 구성을 설명하는 요약도 함께 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 방식으로 구현하면 시각적 사용자도 요약을 볼 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.25.37.png&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvKiUY/btskBCkkum5/BB5n4Ra7Ygd45K1KT8Spe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvKiUY/btskBCkkum5/BB5n4Ra7Ygd45K1KT8Spe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvKiUY/btskBCkkum5/BB5n4Ra7Ygd45K1KT8Spe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvKiUY%2FbtskBCkkum5%2FBB5n4Ra7Ygd45K1KT8Spe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;804&quot; height=&quot;522&quot; data-filename=&quot;스크린샷 2023-06-12 오후 4.25.37.png&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687156608332&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;caption&amp;gt;Availability of holiday accommodation &amp;lt;br&amp;gt;
  &amp;lt;span&amp;gt;Column one has the location and size of accommodation, other columns show the type and number of properties available&amp;lt;/span&amp;gt;
&amp;lt;/caption&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 &lt;br /&gt;요약의 스타일을 캡션과 다르게 지정하기 위해 스팬 요소가 추가되었습니다. 이 요소는 필수는 아닙니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 2. aria-describedby를 사용하여 테이블 요약 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 접근 방식에서는 id 속성이 있는 요소가 테이블의 aria-describedby 속성을 사용하여 요약과 연결됩니다. 고유한 id 속성이 있는 모든 요소는 이러한 방식으로 테이블의 요약으로 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요약이 포함된 요소가 문서의 표 앞에 있을 필요는 없지만, 특히 스크린 리더를 사용하지 않는 경우 표 근처에 요약이 있으면 사용자가 요약을 더 빨리 발견하는 데 도움이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 WAI-ARIA 기능은 이 페이지의 다른 요약 방식에 비해 보조 기술에서 광범위하게 지원되지 않을 수 있습니다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 8.58.04.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ez2lEk/btskBDDyamY/sv8AkWkjmeGR34AgkZkzG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ez2lEk/btskBDDyamY/sv8AkWkjmeGR34AgkZkzG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ez2lEk/btskBDDyamY/sv8AkWkjmeGR34AgkZkzG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fez2lEk%2FbtskBDDyamY%2Fsv8AkWkjmeGR34AgkZkzG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;307&quot; data-filename=&quot;스크린샷 2023-06-12 오후 8.58.04.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687156701735&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p id=&quot;tblDesc&quot;&amp;gt;Column one has the location and size of accommodation, other columns show the type and number of properties available.&amp;lt;/p&amp;gt;
&amp;lt;table aria-describedby=&quot;tblDesc&quot;&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 3. &amp;lt;figure&amp;gt; 요소를 사용하여 표 요약 마크업하기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 접근 방식에서는 표를 &amp;lt;figure&amp;gt; 요소로 감싸는 방식입니다. &amp;lt;figcaption&amp;gt; 요소에는 캡션과 요약 텍스트가 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&quot;표 모드&quot;로 탐색하는 스크린 리더 사용자는 일반적으로 이렇게 적용된 캡션으로는 표를 식별할 수 없습니다. &amp;lt;figcaption&amp;gt; 요소의 캡션 부분은 aria-labelledby 속성을 사용하여 표에 명시적으로 연결할 수 있으며, 요약 부분은 aria-describedby 속성을 사용하여 표에 명시적으로 연결할 수 있습니다. 이렇게 하면 캡션과 요약이 여러 번 읽힐 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 &lt;br /&gt;이 HTML5 기능은 이 페이지의 요약에 대한 다른 접근 방식보다 보조 기술에서 널리 지원되지 않을 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.01.10.png&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxKxa/btskll56pQ6/NyShpTcANkxcUQzTRvZLW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxKxa/btskll56pQ6/NyShpTcANkxcUQzTRvZLW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxKxa/btskll56pQ6/NyShpTcANkxcUQzTRvZLW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxKxa%2Fbtskll56pQ6%2FNyShpTcANkxcUQzTRvZLW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;390&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.01.10.png&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;WAI-ARIA 미사용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687156868339&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;figure&amp;gt;
  &amp;lt;figcaption&amp;gt;
    &amp;lt;strong&amp;gt;Paris: Availability of holiday accommodation&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;span&amp;gt;Column one has the location and size of accommodation, other columns show the type and number of properties available.&amp;lt;/span&amp;gt;
  &amp;lt;/figcaption&amp;gt;
  &amp;lt;table&amp;gt;
[&amp;hellip;]
  &amp;lt;/table&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;WAI-ARIA 사용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687156885978&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;figure&amp;gt;
  &amp;lt;figcaption&amp;gt;
    &amp;lt;strong id=&quot;paris-caption&quot;&amp;gt;Paris: Availability of holiday accommodation&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;span id=&quot;paris-summary&quot;&amp;gt;Column one has the location and size of accommodation, other columns show the type and number of properties available.&amp;lt;/span&amp;gt;
  &amp;lt;/figcaption&amp;gt;
  &amp;lt;table aria-labelledby=&quot;paris-caption&quot; aria-describedby=&quot;paris-summary&quot;&amp;gt;
[&amp;hellip;]
  &amp;lt;/table&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 사용 팁&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;단순하게 유지하세요.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;복잡한 표는 콘텐츠 제작자에게는 더 많은 작업을 요구하고 사용자에게는 해석하기 어렵습니다. 일반적으로 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#%EC%98%88%203%20)%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B6%84%ED%95%A0-1&quot;&gt;복잡한 표는 하나의 하위 주제에 대한 데이터를 포함하는 간단한 개별 표로 나누는 것&lt;/a&gt;이 좋습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;테이블 분리&lt;/b&gt; &lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 표가 서로 이어지는 경우 하나의 표를 사용하지 말고 &amp;lt;th&amp;gt; 셀 행을 추가로 넣습니다. 스크린 리더는 한 열의 모든 &amp;lt;th&amp;gt; 셀을 소리내어 읽을 수 있으므로 혼동을 일으킬 수 있습니다. &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#%EC%98%88%203%20)%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B6%84%ED%95%A0-1&quot;&gt;주제가 변경되면 새 &amp;lt;th&amp;gt;를 시작하세요&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;데이터 분리&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 개별 데이터에 해당 셀이 있는지 확인합니다. 헤더는 한 열에, 모든 데이터는 두 번째 열에 사용하면 스크린 리더가 열 간 데이터 관계를 파악하는 것이 거의 불가능해지므로 사용하지 마세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.06.01.png&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5KdPe/btskE0L45zq/Dpz410fr4LM9ftQnl7r7Zk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5KdPe/btskE0L45zq/Dpz410fr4LM9ftQnl7r7Zk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5KdPe/btskE0L45zq/Dpz410fr4LM9ftQnl7r7Zk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5KdPe%2FbtskE0L45zq%2FDpz410fr4LM9ftQnl7r7Zk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;369&quot; height=&quot;181&quot; data-filename=&quot;스크린샷 2023-06-12 오후 9.06.01.png&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트 크기를 조정할 때 의사 행의 데이터가 더 이상 올바르게 정렬되지 않을 수 있으므로 줄 바꿈(&amp;lt;br&amp;gt; 요소)을 사용하여 표 행을 만들지 마세요.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬 &lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트는 왼쪽에, 숫자 데이터는 오른쪽에 정렬하여(왼쪽에서 오른쪽으로 읽고 쓰는 언어) 텍스트 크기가 크거나 화면이 작은 사용자도 쉽게 찾을 수 있도록 합니다. 이 기능은 셀이 두 개 이상의 열에 걸쳐 있는 경우에 특히 유용합니다. 열 헤더의 정렬을 아래 셀의 데이터와 동일하게 지정하면 도움이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;헤더 셀 스타일 지정하기&lt;/b&gt; &lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;헤더 셀에는 &amp;lt;th&amp;gt; 요소가 사용되며, 다른 스타일이 적용된 &amp;lt;td&amp;gt; 요소를 사용하면 테이블에 접근하기 어렵거나 접근이 불가능할 경우 테이블에 대한 접근성이 떨어집니다. &amp;lt;th&amp;gt;와 &amp;lt;td&amp;gt; 셀을 시각적으로 구분하는 것도 도움이 됩니다. 예를 들어, 이 튜토리얼 페이지에서 헤더 셀은 짙은 회색 배경을 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;셀에 색상 대비를 반영한 표 &lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;짝수 행과 홀수 행을 다른 방식으로 스타일링하면 읽기에 어려움이 있거나 텍스트를 확대하는 사용자에게 도움이 될 수 있습니다. 시각적 가이드 역할을 합니다. 마우스 오버 및 키보드 포커스 시 셀(및 행/열)을 강조 표시하여 사용자가 해당 셀의 위치를 쉽게 확인할 수 있도록 지원합니다. 헤더와 데이터 셀 모두에서 텍스트와 배경의 대비 비율이 적절한지 확인하세요. &lt;a href=&quot;https://www.w3.org/WAI/test-evaluate/preliminary/#contrast&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;대비 비율을 확인하는 방법은 다음과 같습니다&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;유연성&lt;/b&gt; &lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;표의 레이아웃 모델로 인해 작은 화면에서는 표가 작게 보이지 않거나 사용자가 확대하면 너무 넓어지는 경우가 있습니다. 이러한 상황에서는 표가 잘리지 않도록 하는 것이 중요합니다. (예: CSS에서 overflow: hidden 사용) 이 튜토리얼에서는 사용자가 표를 가로로 스크롤할 수 있도록 표를 감싸는 요소에 overflow: scroll을 적용했지만, 이러한 상황에서 표를 표시하는 데는 훨씬 더 많은 옵션이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;레이아웃 목적의 표 &lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;표는 레이아웃 용도로 사용해서는 안 됩니다. 레이아웃에는 CSS(Cascading Style Sheet)를 사용하십시오. 이미 레이아웃 테이블이 있는 경우 이 튜토리얼에서 설명하는 구조 요소(예: &amp;lt;th&amp;gt; 또는 &amp;lt;caption&amp;gt;) 및 속성을 사용하지 말고 &amp;lt;table&amp;gt; 요소에 role=&quot;presentation&quot;을 추가하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;이 글은&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>html</category>
      <category>table</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/8</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table#entry8comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:17:31 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 4. 이미지</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cN9h5X/btskRuHNWdH/lAkrTZxCp7vsoWDorjVTd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cN9h5X/btskRuHNWdH/lAkrTZxCp7vsoWDorjVTd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cN9h5X/btskRuHNWdH/lAkrTZxCp7vsoWDorjVTd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcN9h5X%2FbtskRuHNWdH%2FlAkrTZxCp7vsoWDorjVTd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지에는 이미지가 나타내는 정보 또는 기능을 설명하는 대체 텍스트가 있어야 합니다. &lt;br /&gt;이렇게 하면 다양한 장애를 가진 사람들이 이미지를 사용할 수 있습니다. 이 튜토리얼에서는 이미지의 목적에 따라 적절한 대체 텍스트를 제공하는 방법을 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;정보 제공 이미지 :&lt;/b&gt;&lt;br /&gt;개념과 정보를 그래픽으로 표현하는 이미지로, 일반적으로 그림, 사진 및 일러스트레이션이 해당됩니다. 대체 텍스트는 이미지가 제시하는 필수 정보를 전달하는 간단한 설명 정도여야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;장식 이미지 :&lt;br /&gt;&lt;/b&gt;이미지의 유일한 목적이 페이지 이해에 중요한 정보를 전달하는 것이 아니라 페이지에 시각적 장식을 추가하는 것일 경우 빈 값의 대체 텍스트(alt=&quot;&quot;)를 제공합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;기능적 이미지&lt;/b&gt; : &lt;br /&gt;링크 또는 버튼으로 사용되는 이미지의 대체 텍스트는 시각적 이미지가 아닌 링크 또는 버튼의 기능을 설명해야 합니다. 이러한 이미지의 예로는 인쇄 기능을 나타내는 프린터 아이콘이나 양식 제출 버튼 등이 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;텍스트 이미지&lt;/b&gt; : &lt;br /&gt;이미지 내에 읽을 수 있는 텍스트가 표시되는 경우가 있습니다. 이미지가 로고가 아닌 경우 이미지에 텍스트를 넣지 마세요. 그러나 텍스트 이미지를 사용하는 경우에는 대체 텍스트에 이미지와 동일한 단어를 포함해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;그래프 및 다이어그램과 같은 복잡한 이미지&lt;/b&gt; : &lt;br /&gt;데이터 또는 자세한 정보를 전달하려면 이미지에 제공된 데이터 또는 정보에 해당하는 완전한 텍스트를 텍스트 대체물로 제공하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;이미지 그룹&lt;/b&gt; : &lt;br /&gt;여러 이미지가 하나의 정보를 전달하는 경우 한 이미지의 대체 텍스트는 전체 그룹에 대한 정보를 전달해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;이미지 맵&lt;/b&gt; : &lt;br /&gt;클릭 가능한 영역이 여러 개 포함된 이미지의 대체 텍스트는 링크 집합에 대한 전반적인 컨텍스트를 제공해야 합니다. 또한 개별적으로 클릭할 수 있는 각 영역에는 링크의 목적 또는 대상을 설명하는 대체 텍스트가 있어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 이미지가 어떤 카테고리에 속하는지 결정하는 방법에 대한 간략한 개요는 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images#alt%20%EA%B2%B0%EC%A0%95%20%ED%8A%B8%EB%A6%AC-1&quot;&gt;alt 값의 결정을 도와주는 표&lt;/a&gt;를 참조하세요. 대체 텍스트는 이미지의 용도, 문맥 및 콘텐츠에 따라 작성자가 결정해야 합니다. 예를 들어 이미지에 있는 새의 정확한 종류와 생김새는 공원에 관한 웹사이트에서는 관련성이 낮고 간략하게만 설명할 수 있지만 새에 관한 웹사이트에서는 적절할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이것이 왜 중요한가요?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지와 그래픽은 많은 사람들, 특히 인지 및 학습 장애가 있는 사람들이 콘텐츠를 더 즐겁고 쉽게 이해할 수 있게 해줍니다. 이미지와 그래픽은 저시력자를 비롯한 시각 장애인이 콘텐츠에서 방향을 잡는 데 사용하는 단서 역할을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그러나 이미지는 웹사이트에서 광범위하게 사용되며 접근성이 떨어지면 큰 장벽이 될 수 있습니다. 접근 가능한 이미지는 다음과 같은 여러 상황에서 유용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스크린 리더를 사용하는 사람&lt;/b&gt; : 대체 텍스트를 소리내어 읽거나 점자로 렌더링할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;음성 입력 소프트웨어를 사용하는 사람&lt;/b&gt; : 사용자는 한 번의 음성 명령으로 버튼이나 링크된 이미지에 초점을 맞출 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;음성 지원 웹사이트를 탐색하는 사용자&lt;/b&gt; : 텍스트 대체를 소리내어 읽을 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;모바일 웹 사용자&lt;/b&gt; : 특히 데이터 로밍 시 이미지를 끌 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;검색 엔진 최적화&lt;/b&gt; : 검색 엔진에서 이미지를 색인화할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;웹사이트에서 이미지를 제거하면(소위 '텍스트 전용 버전') 이러한 사용자 및 상황에서 웹사이트에 대한 접근성과 기능이 저하됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정보 제공 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유익한 이미지는 짧은 구절이나 문장으로 표현할 수 있는 간단한 개념이나 정보를 전달합니다. 대체 텍스트는 일반적으로 이미지에 대한 문자 그대로의 설명이 아닌 시각적으로 표시되는 의미나 내용을 전달해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;경우에 따라 자세한 문자 그대로의 설명이 필요할 수 있지만, 이는 이미지의 내용이 전달되는 정보의 전부 또는 일부인 경우에만 해당됩니다. 이미지를 정보 제공용 또는 장식용으로 취급할지 여부는 작성자가 페이지에 이미지를 포함하는 이유에 따라 판단합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 기타 정보에 레이블을 지정하는 데 사용되는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 두 개의 이미지 아이콘(전화기, 팩스)을 보여줍니다. 각 이미지 뒤에는 전화 번호가 있습니다. 시각적 표시와 일관되게 &quot;전화:&quot; 및 &quot;팩스:&quot;라는 대체 텍스트가 각 번호와 연결된 장치를 식별하는 데 사용됩니다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-08 오후 11.36.49.png&quot; data-origin-width=&quot;205&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v8DNz/btsjHdsTU9P/V8e0kXKDzpBsNSjK1NLOI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v8DNz/btsjHdsTU9P/V8e0kXKDzpBsNSjK1NLOI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v8DNz/btsjHdsTU9P/V8e0kXKDzpBsNSjK1NLOI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv8DNz%2FbtsjHdsTU9P%2FV8e0kXKDzpBsNSjK1NLOI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;205&quot; height=&quot;92&quot; data-filename=&quot;스크린샷 2023-06-08 오후 11.36.49.png&quot; data-origin-width=&quot;205&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686583483875&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;img src=&quot;phone.png&quot; alt=&quot;Telephone:&quot;&amp;gt; 0123 456 7890
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
  &amp;lt;img src=&quot;fax.png&quot; alt=&quot;Fax:&quot;&amp;gt; 0123 456 7891
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 기타 정보를 보완하는 데 사용되는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 방울을 착용한 개를 보여줍니다. 이 이미지는 이 종의 용도를 설명하는 인접한 텍스트를 보완합니다. 시각적으로 표시되지만 텍스트에 설명되지 않은 정보는 짧은 텍스트로 대체하여 설명할 수 있으며, 이 경우 대체 텍스트는 &quot;목줄에 방울이 달린 개&quot;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.01.25.png&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r9738/btsjGhW2aEq/KnMzjXQLOVJ4RutxZSGgS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r9738/btsjGhW2aEq/KnMzjXQLOVJ4RutxZSGgS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r9738/btsjGhW2aEq/KnMzjXQLOVJ4RutxZSGgS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr9738%2FbtsjGhW2aEq%2FKnMzjXQLOVJ4RutxZSGgS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;923&quot; height=&quot;160&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.01.25.png&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686583558498&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;img src=&quot;dog.jpg&quot; alt=&quot;목줄에 방울이 달린 개&quot;&amp;gt;
  비번 안내견은 종종 벨을 착용합니다. 이 벨은 시각장애인 ...
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;텍스트에 개가 방울을 착용하는 방법에 대한 설명이 포함된 경우 이미지는 중복된 것으로 간주되어 장식적인 것으로 간주될 수 있습니다. 텍스트에 언급되어 있지 않으므로 이미지는 정보를 제공하는 것으로 간주됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 간결한 정보를 전달하는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 간단한 다이어그램은 병뚜껑이나 뚜껑을 풀 때 시계 반대 방향으로 돌리는 방법을 보여줍니다. 짧은 문장으로 정보를 설명할 수 있으므로 대체 텍스트인 &quot;뚜껑을 아래로 누르고 시계 반대 방향(오른쪽에서 왼쪽으로)으로 돌립니다&quot;를 alt 속성으로 지정할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.04.15.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cj7pbr/btsjFWyGKOd/3LnwI3Gxm9y8xljOEWkOx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cj7pbr/btsjFWyGKOd/3LnwI3Gxm9y8xljOEWkOx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cj7pbr/btsjFWyGKOd/3LnwI3Gxm9y8xljOEWkOx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcj7pbr%2FbtsjFWyGKOd%2F3LnwI3Gxm9y8xljOEWkOx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;885&quot; height=&quot;162&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.04.15.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686583663078&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;cap.png&quot; alt=&quot;뚜껑을 아래로 누르고 시계 반대 방향(오른쪽에서 왼쪽으로)으로 돌립니다.&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;1. 다른 기법은 이미지 대신 텍스트 대신 주요 콘텐츠 내에 지침을 제공하는 것입니다. &lt;br /&gt;&amp;nbsp; &amp;nbsp; 이 기법을 사용하면 모든 사람이 모든 정보를 텍스트로 사용할 수 있으며, 시각적으로 정보를 보는 것을 선호하는 사람에게는 일러스트&lt;br /&gt;&amp;nbsp; &amp;nbsp; 를 제공할 수 있습니다.&lt;br /&gt;&lt;br /&gt;2. 다이어그램보다 더 많은 정보를 이미지로 전달하려는 경우 복잡한 이미지에 설명된 접근 방식 중 하나를 따르는 것이 더 나을 수 있습&lt;br /&gt;&amp;nbsp; &amp;nbsp; 니다. 예를 들어 이 다이어그램이 병에 표시되어 있다는 사실이나 병의 모양과 크기가 관련 정보인 경우 더 자세한 대체 텍스트를 사용&lt;br /&gt;&amp;nbsp; &amp;nbsp; 합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 4 ) 인상이나 감정을 전달하는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 사진은 행복한 가족 그룹을 보여줍니다. 스톡 이미지이므로 개인을 식별해서는 안 됩니다. 이 이미지는 웹사이트 또는 웹사이트가 대표하는 회사가 가족 친화적이라는 인상을 주기 위해 사용되고 있습니다. 의도한 인상을 가장 잘 설명하는 텍스트는 &quot;우리는 가족 친화적입니다&quot;입니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오전 12.31.17.png&quot; data-origin-width=&quot;340&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oUY3T/btsjAwUWPOW/j1lR5i8Sv7nBxjrigNKUK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oUY3T/btsjAwUWPOW/j1lR5i8Sv7nBxjrigNKUK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oUY3T/btsjAwUWPOW/j1lR5i8Sv7nBxjrigNKUK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoUY3T%2FbtsjAwUWPOW%2Fj1lR5i8Sv7nBxjrigNKUK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;340&quot; height=&quot;195&quot; data-filename=&quot;스크린샷 2023-06-13 오전 12.31.17.png&quot; data-origin-width=&quot;340&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686583835689&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;family.jpg&quot; alt=&quot;우리는 가족 친화적입니다.&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;이 이미지의 목적이 인상을 전달하기보다는 단순히 페이지의 모양을 개선하는 것이라면 '장식용 이미지'에 표시된 것처럼 장식용으로 간주할 수 있습니다. &amp;ldquo;분위기에 사용되는 이미지&quot;에서와 같이 장식적인 이미지로 간주할 수 있습니다. 이미지 사용 목적은 작성자가 결정합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 5 ) 파일 형식을 전달하는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 텍스트 링크 내의 형식 아이콘으로 식별되는 세 가지 형식으로 문서를 다운로드할 수 있습니다. 각 링크의 파일 형식을 구분하기 위해 'HTML', 'Word 문서', 'PDF'라는 텍스트 대체 아이콘이 있습니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.11.56.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JQjDT/btsjGI01Xkf/DQvA09AMvAGsSUFPtE9lR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JQjDT/btsjGI01Xkf/DQvA09AMvAGsSUFPtE9lR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JQjDT/btsjGI01Xkf/DQvA09AMvAGsSUFPtE9lR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJQjDT%2FbtsjGI01Xkf%2FDQvA09AMvAGsSUFPtE9lR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;39&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.11.56.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;39&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686584010665&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;
    2012 Annual report and accounts
    &amp;lt;img src=&quot;html5logo.png&quot; alt=&quot;HTML&quot; &amp;gt; (43KB)
  &amp;lt;/a&amp;gt;, also available in
  &amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;
    &amp;lt;img src=&quot;worddocument.png&quot; alt=&quot;Word document&quot;&amp;gt; (254KB)
  &amp;lt;/a&amp;gt;
  or
  &amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;
    &amp;lt;img src=&quot;pdfdocument.png&quot; alt=&quot;PDF&quot;&amp;gt; (353KB)
  &amp;lt;/a&amp;gt;
  format.
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;1. 형식 식별이 링크 텍스트의 일부로 작성된 경우 이미지는 장식용으로 간주되어 비어 있는 alt 속성(alt=&quot;&quot;)을 가질 수 있습니다. 클릭 &lt;br /&gt;&amp;nbsp; &amp;nbsp; 가능한 영역에 포함하기 위해 텍스트와 동일한 링크 요소(&amp;lt;a&amp;gt;)에 남아있을 수 있습니다. 자세한 내용은 &quot;기능성 이미지: 링크 텍스트 &lt;br /&gt;&amp;nbsp; &amp;nbsp; 내의 로고 이미지&quot;를 참조하세요.&lt;br /&gt;&lt;br /&gt;2. 이 특정 예는 이미지가 링크 텍스트에 제공되지 않는 정보를 전달한다는 점에서 링크 텍스트 내의 기능성 이미지 아이콘과 유사합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;장식 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;장식 이미지는 페이지 콘텐츠에 정보를 추가하지 않습니다. 예를 들어 이미지가 제공하는 정보는 이미 인접한 텍스트를 사용하여 제공되거나 웹사이트를 시각적으로 더 매력적으로 만들기 위해 이미지가 포함될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이러한 경우에는 스크린 리더와 같은 보조 기술에서 무시할 수 있도록 비어 있는 대체 텍스트&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;(alt=&quot;&quot;)&lt;/span&gt;를 제공해야 합니다. 이러한 유형의 이미지에 대한 텍스트 값은 스크린 리더 출력에 청각적 혼란을 가중시키거나 주제가 인접한 텍스트의 주제와 다른 경우 사용자의 주의를 분산시킬 수 있습니다. alt 속성을 제공하지 않으면 일부 스크린 리더에서는 이미지의 파일 이름을 대신 알려주므로 이 속성을 생략하는 것도 옵션이 아닙니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지를 장식용으로 처리할지 정보용으로 처리할지는 페이지에 이미지를 포함하는 이유에 따라 작성자만이 판단할 수 있습니다. 이미지는 장식용일 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테두리, 스페이서 및 모서리와 같은 시각적 스타일링&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트의 모양을 개선하거나 클릭 가능한 영역을 늘리기 위해 링크 텍스트를 보조하는 경우&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인접한 텍스트를 설명하지만 정보를 제공하지는 않는 경우('눈요기')&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주변 텍스트에 의해 식별 및 설명됨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시에서는 &amp;lt;img&amp;gt; 요소를 사용하여 장식 이미지를 제공할 때 alt 속성을 사용하는 방법을 보여줍니다. 가능한 경우 장식 이미지는 CSS 배경 이미지를 사용하여 제공해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 페이지 디자인의 일부로 사용되는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 이미지는 페이지 디자인에서 테두리로 사용되며 순전히 장식적인 목적으로 사용됩니다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.24.00.png&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mOlAD/btsklnn6w1R/DnS8DkLeoV5DQ6GEw3HR90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mOlAD/btsklnn6w1R/DnS8DkLeoV5DQ6GEw3HR90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mOlAD/btsklnn6w1R/DnS8DkLeoV5DQ6GEw3HR90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmOlAD%2Fbtsklnn6w1R%2FDnS8DkLeoV5DQ6GEw3HR90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;839&quot; height=&quot;39&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.24.00.png&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;39&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687096894593&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;topinfo_bg.png&quot; alt=&quot;&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 스크린 리더를 사용하면 role=&amp;rdquo;presentation&amp;rdquo;을 사용하여 요소를 숨길 수 있습니다. 그러나 현재 이 기능은 비어있는 alt 속성을 사용하는 것만큼 널리 지원되지는 않습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1687096937668&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;topinfo_bg.png&quot; role=&quot;presentation&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;스토리에서 장면이 바뀌거나 다른 주제로 전환하는 등 주제별 구분을 나타내기 위해 이미지를 사용하는 경우에는 &amp;lt;hr&amp;gt; 요소를 사용하여 보조 기술을 알리는 것이 적절할 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 텍스트 링크의 일부로 장식 이미지 사용&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 크로커스 전구 그림은 링크를 더 쉽게 식별하고 클릭 가능한 영역을 늘리기 위해 사용되었지만 인접한 링크 텍스트(동일한 앵커의)에 이미 제공된 정보에 추가되지는 않습니다. 이 경우 이미지에 비어 있는 대체 값을 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.29.36.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p2bao/btskieZzjqk/tqax38YtKPfsPia4n3Nlk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p2bao/btskieZzjqk/tqax38YtKPfsPia4n3Nlk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p2bao/btskieZzjqk/tqax38YtKPfsPia4n3Nlk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp2bao%2FbtskieZzjqk%2Ftqax38YtKPfsPia4n3Nlk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;90&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.29.36.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097054905&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;crocuspage.html&quot;&amp;gt;
  &amp;lt;img src=&quot;crocus.jpg&quot; alt=&quot;&quot; /&amp;gt;
  &amp;lt;strong&amp;gt; Crocus bulbs&amp;lt;/strong&amp;gt;
&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 인접한 텍스트 대체 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 잠자는 개 그림은 이미 인접한 텍스트로 충분히 설명되어 있습니다. 이 정보를 반복할 필요가 없으며 이 이미지에는 비어 있는 대체 값을 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.31.28.png&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wNrxx/btskgcnTiVn/EqeFxKEexClKVo7MQoWyIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wNrxx/btskgcnTiVn/EqeFxKEexClKVo7MQoWyIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wNrxx/btskgcnTiVn/EqeFxKEexClKVo7MQoWyIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwNrxx%2FbtskgcnTiVn%2FEqeFxKEexClKVo7MQoWyIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;933&quot; height=&quot;158&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.31.28.png&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097118470&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;img src=&quot;sleepingdog.jpg&quot; alt=&quot;&quot; /&amp;gt;
  &amp;lt;strong&amp;gt;잠자는 개:&amp;lt;/strong&amp;gt; ...
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 4 ) 분위기(눈요깃거리)에 사용되는 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 이미지는 페이지에 분위기나 시각적 흥미를 더하는 데만 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.33.35.png&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3UYFO/btskuMUS2am/eFM1Z1fTdzu95LlGLCm0dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3UYFO/btskuMUS2am/eFM1Z1fTdzu95LlGLCm0dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3UYFO/btskuMUS2am/eFM1Z1fTdzu95LlGLCm0dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3UYFO%2FbtskuMUS2am%2FeFM1Z1fTdzu95LlGLCm0dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;928&quot; height=&quot;228&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.33.35.png&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097195478&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;tropical.jpg&quot; alt=&quot;&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 이미지의 목적이 단순히 페이지의 모양을 개선하기 위한 것이 아니라 식물을 식별하거나 다른 정보를 전달하기 위한 것이라면 정보 제공용으로 취급해야 합니다. 이미지의 사용 목적은 작성자가 결정합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능적 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능 이미지는 정보를 전달하기보다는 행동을 유도하는 데 사용됩니다. &lt;br /&gt;버튼, 링크 및 기타 인터랙티브 요소에 사용됩니다. 이미지의 대체 텍스트는 이미지에 대한 설명이 아니라 시작될 작업(이미지의 목적)을 전달해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어 아래 예시와 같이 대체 텍스트는 '(프린터 이미지)'가 아닌 '이 페이지 인쇄', '돋보기'가 아닌 '검색', '예시닷컴 로고'가 아닌 '예시닷컴 홈페이지'가 되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능 이미지는 콘텐츠의 기능에 필수적이므로 대체 값이 누락되거나 비어 있으면 스크린 리더 사용자에게 심각한 문제가 발생합니다. 스크린 리더는 일반적으로 이미지 파일 이름, 이미지 URL 또는 링크 대상의 URL을 알려주므로 사용자가 이미지로 인해 시작될 작업을 이해하는 데 도움이 되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 링크된 로고로 단독으로 사용된 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 W3C 홈 페이지로 연결되는 링크의 유일한 콘텐츠입니다. 이 이미지에는 링크가 사용자를 어디로 연결할지 나타내는 &quot;W3C 홈&quot;이라는 대체 텍스트가 있습니다. 다음 예제인 '링크 텍스트 내의 로고 이미지' 예제에서는 링크에 목적지를 식별하는 텍스트가 더 있는 경우 어떻게 해야 하는지에 대해 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.43.55.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NnI3C/btskg8FupZ4/gklNdBA6LEIriPZKjFroxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NnI3C/btskg8FupZ4/gklNdBA6LEIriPZKjFroxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NnI3C/btskg8FupZ4/gklNdBA6LEIriPZKjFroxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNnI3C%2Fbtskg8FupZ4%2FgklNdBA6LEIriPZKjFroxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;747&quot; height=&quot;124&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.43.55.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097390399&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;https://www.w3.org/&quot;&amp;gt;
  &amp;lt;img src=&quot;w3c.png&quot; alt=&quot;W3C 홈&quot; /&amp;gt;
&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;1. 이 상황에서도 로고는 'W3C'라는 텍스트 이미지이지만, 이 경우 로고의 주요 기능은 홈페이지 링크이므로 텍스트 대체에 '홈'이라는 단어를 추가했습니다. &lt;br /&gt;2. 로고로 사용되는 이미지는 다른 텍스트 이미지에 적용되는 일부 접근성 요구 사항(예: 최소 색상 대비 및 텍스트 크기 요구 사항 없음)이 면제됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예시 2 ) 링크 텍스트 내 로고 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 W3C 로고가 W3C 홈 페이지로 연결되는 링크 내의 텍스트를 보완하는 데 사용됩니다. 이미지는 링크 텍스트에 이미 제공된 것과 다른 기능을 나타내거나 다른 정보를 전달하지 않으므로 중복 및 반복을 방지하기 위해 널(공백) 값(alt=&quot;&quot;)이 적용됩니다. 사실상 이미지는 링크 텍스트에 대한 장식적인 보조 또는 시각적 단서 역할을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.47.35.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EWoCP/btskgeFZ5vE/cKRAECnMStS3YXyCWhrRt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EWoCP/btskgeFZ5vE/cKRAECnMStS3YXyCWhrRt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EWoCP/btskgeFZ5vE/cKRAECnMStS3YXyCWhrRt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEWoCP%2FbtskgeFZ5vE%2FcKRAECnMStS3YXyCWhrRt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;112&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.47.35.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097519350&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;https://www.w3.org/&quot;&amp;gt;
  &amp;lt;img src=&quot;w3c.png&quot; alt=&quot;&quot; /&amp;gt; W3C Home
&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 링크 텍스트 내에 정보를 전달하는 아이콘 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 이미지가 링크 내의 텍스트를 따라가면서 링크가 새 창에서 열릴 것임을 사용자에게 알립니다. 아이콘의 의미를 전달하기 위해 '새 창'이라는 대체 텍스트가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.48.33.png&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu13uP/btsklmvYBSU/IrFuOyz6eLbcO4otw0uUoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu13uP/btsklmvYBSU/IrFuOyz6eLbcO4otw0uUoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu13uP/btsklmvYBSU/IrFuOyz6eLbcO4otw0uUoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu13uP%2FbtsklmvYBSU%2FIrFuOyz6eLbcO4otw0uUoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;863&quot; height=&quot;36&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.48.33.png&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097596344&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;https://www.w3.org/&quot; target=&quot;_blank&quot;&amp;gt;
  W3C Homepage &amp;lt;img src=&quot;new-window.png&quot; alt=&quot;새 창&quot; /&amp;gt;
&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 기법은 아이콘과 함께 AVI, ODF, MP3, PDF, Word 등과 같은 다양한 파일 형식을 나타내는 데 자주 사용됩니다. 이 경우 대체 텍스트는 각 아이콘이 나타내는 형식을 동일하게 전달해야 합니다(유익한 이미지를 참조하세요).&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 4 ) 기능이 있는 독립형 아이콘 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 인쇄 기능을 나타내는 프린터를 나타내는 아이콘입니다. 이 아이콘의 목적은 인쇄 대화 상자를 선택했을 때 활성화하는 것이므로 &quot;이 페이지 인쇄&quot;라는 텍스트 대안이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.49.53.png&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biSx6r/btsknvTJg61/VSkxiaSJ04KwRAgI8bVVu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biSx6r/btsknvTJg61/VSkxiaSJ04KwRAgI8bVVu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biSx6r/btsknvTJg61/VSkxiaSJ04KwRAgI8bVVu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiSx6r%2FbtsknvTJg61%2FVSkxiaSJ04KwRAgI8bVVu1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;649&quot; height=&quot;48&quot; data-filename=&quot;스크린샷 2023-06-09 오전 11.49.53.png&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097679526&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;javascript:print()&quot;&amp;gt;
  &amp;lt;img src=&quot;print.png&quot; alt=&quot;이 페이지 인쇄&quot; /&amp;gt;
&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 5 ) 버튼에 사용된 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 버튼에 독특한 스타일을 부여하는 데 사용됩니다. 이 경우 검색 요청을 시작하는 버튼이며 돋보기를 나타내는 아이콘입니다. 이미지의 대체 텍스트는 버튼의 목적을 전달하기 위해 &quot;검색&quot;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.23.48.png&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp8fng/btskiShDgKp/EsfLMWrKRDpfy4wpz5Xluk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp8fng/btskiShDgKp/EsfLMWrKRDpfy4wpz5Xluk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp8fng/btskiShDgKp/EsfLMWrKRDpfy4wpz5Xluk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp8fng%2FbtskiShDgKp%2FEsfLMWrKRDpfy4wpz5Xluk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;75&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.23.48.png&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687097738250&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;image&quot; src=&quot;searchbutton.png&quot; alt=&quot;검색&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트 이미지는 읽히도록 의도된 텍스트를 표시합니다. 대부분의 웹 브라우저에서 현재 CSS 기능을 사용할 수 있으므로 이미지 기반 텍스트 표시보다는 CSS로 스타일이 지정된 실제 텍스트를 사용하는 것이 좋은 디자인 관행입니다. 실제 텍스트는 이미지보다 훨씬 유연합니다: 선명도를 잃지 않고 크기를 조정할 수 있으며 배경 및 텍스트 색상을 사용자의 읽기 선호도에 맞게 수정할 수 있습니다. 이미지는 크기를 조정할 때 왜곡되거나 픽셀화될 가능성이 더 높습니다. 드물지만 텍스트 이미지를 사용해야 하는 경우에는 대체 텍스트에 이미지에 표시된 텍스트와 동일한 텍스트가 포함되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 장식 효과가 있는 스타일 텍스트&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 장식 효과가 있는 슬로건 텍스트를 전달하는 데 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.27.19.png&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6eTmS/btskk8R1wSR/y7Jd6gTbARD3u6lezRluz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6eTmS/btskk8R1wSR/y7Jd6gTbARD3u6lezRluz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6eTmS/btskk8R1wSR/y7Jd6gTbARD3u6lezRluz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6eTmS%2Fbtskk8R1wSR%2Fy7Jd6gTbARD3u6lezRluz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;100&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.27.19.png&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이전에는 여러 브라우저에서 일관되게 렌더링되는 CSS 스타일링을 사용하여 이러한 텍스트를 만들 수 없었기 때문에 텍스트 이미지를 사용했습니다. 이 이미지의 대체 텍스트는 &quot;도시에 대한 귀하의 접근성&quot;로 이미지에 표시된 슬로건과 동일합니다. 장식 효과(양식화된 텍스트 및 그림자)는 관련성이 없으므로 설명하지 않았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687097874750&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;access-city.png&quot; alt=&quot;도시에 대한 귀하의 접근성.&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CSS3 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 이미지의 시각적 효과는 CSS3와 임베디드 글꼴을 사용하여 만들 수 있습니다. 구형 브라우저를 지원해야 하는 작성자와 개발자는 스타일이 덜한 대체 텍스트를 사용할 수 없는 경우 이 이미지 예제가 유용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.35.40.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bziKao/btskhCM958q/pClAnqvscGWFGxAs4k22hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bziKao/btskhCM958q/pClAnqvscGWFGxAs4k22hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bziKao/btskhCM958q/pClAnqvscGWFGxAs4k22hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbziKao%2FbtskhCM958q%2FpClAnqvscGWFGxAs4k22hK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;622&quot; height=&quot;141&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.35.40.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;브라우저 지원&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이러한 효과를 표시하려면 다음 웹 기술을 지원하는 브라우저가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CSS Transforms&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CSS Fonts&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1687097986967&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;tagline&quot;&amp;gt;&amp;lt;span&amp;gt;도시에 대한 귀하의 접근성&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1687098002726&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@font-face {
  font-family: 'Harabara Hand';
  src: url('harabarahand.ttf') format('truetype');
}

.background {
  background-color: #FFF;
  padding: 2em;
}
.tagline {
  font-family: 'Harabara Hand', cursive;
  text-transform: lowercase;
  color: #226C8E;
  font-size: 1.5em;
  letter-spacing: -1px;
  padding-left: 1em;
  background-color: #DDD9D6;
  box-shadow: 0 2px  4px rgba(0,0,0,.5);
}
.tagline span {
  display: inline-block;
  transform: rotate(-10deg);
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 &lt;br /&gt;코드 스니펫에는 공급업체 접두사가 표시되지 않습니다. CSS3 기능의 실험적 구현을 사용하여 이전 버전의 웹 브라우저와의 호환성을 높이기 위해 이러한 접두사를 추가할 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 링크되지 않은 로고로 사용된 텍스트 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 이미지는 웹 접근성 이니셔티브의 로고입니다. 이 이미지는 링크의 일부가 아니므로 대체 텍스트는 &quot;웹 접근성 이니셔티브&quot;입니다. 로고라는 점을 언급할 필요가 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.38.55.png&quot; data-origin-width=&quot;651&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vki80/btskuMAACXf/Hv2xwVXiH4icqJD6oyr2t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vki80/btskuMAACXf/Hv2xwVXiH4icqJD6oyr2t0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vki80/btskuMAACXf/Hv2xwVXiH4icqJD6oyr2t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvki80%2FbtskuMAACXf%2FHv2xwVXiH4icqJD6oyr2t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;651&quot; height=&quot;67&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.38.55.png&quot; data-origin-width=&quot;651&quot; data-origin-height=&quot;67&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098126620&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;wai.png&quot; alt=&quot;Web Accessibility initiative&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;1. 로고로 사용되는 이미지는 다른 텍스트 이미지에 적용되는 일부 접근성 요구 사항에서 면제됩니다. 예를 들어 최소 색상 대비 및 텍스트 크기 요구 사항이 없습니다. &lt;br /&gt;2. 이 로고가 링크되면 기능적 이미지가 됩니다. 기능성 이미지를 참조하세요: 링크된 로고로 단독으로 사용되는 이미지를 참조하세요.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 3 ) 수학 표현식&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지금까지 수학식은 방정식과 특수 수학 기호를 HTML로 표현하기 어렵기 때문에 이미지로 표현되는 경우가 많았습니다. 그러나 MathML은 웹에서 접근 가능한 수학을 표현하는 데 선호되는 방식으로 부상하고 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 이미지는 반복되는 십진수(끝이 없는 십진수)를 표시합니다. 이 반복 숫자의 대체 텍스트는 '0.3333 반복'입니다. (이미지에서 반복은 소수점 넷째 자리의 '3' 위에 선으로 표시되어 있습니다.)&quot;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 특정 예에서는 재귀가 표시되는 방식이 중요하므로 텍스트 대안에도 설명되어 있습니다. 다른 이미지와 마찬가지로 작성자는 이미지가 전달하고자 하는 정보를 결정하고 그에 따라 텍스트 대안을 구성할 수 있는 가장 좋은 위치에 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.43.26.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2XJjC/btskhCzzsR8/1T673ecoKOyW3dyNFV2xl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2XJjC/btskhCzzsR8/1T673ecoKOyW3dyNFV2xl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2XJjC/btskhCzzsR8/1T673ecoKOyW3dyNFV2xl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2XJjC%2FbtskhCzzsR8%2F1T673ecoKOyW3dyNFV2xl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;37&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.43.26.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;37&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098229961&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img
  src=&quot;0dot3333recurring.png&quot;
  alt=&quot;0.3333 반복. (반복은 소수점 넷째 자리의 '3' 위에 선으로 표시됩니다.)&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;MathML 사용&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수학 표현식 이미지는 페이지 또는 웹사이트의 일반 콘텐츠에 예외적으로 적용되는 경우 등 예외적인 상황에서만 사용해야 합니다. 수학 표현식을 표시하는 데 가장 선호되는 방법은 수학 표현식을 의미적으로 표시할 수 있는 MathML입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수학식이 콘텐츠의 상당 부분을 차지하는 경우(예: 온라인 수학 강좌)에는 MathML을 대신 사용해야 합니다. MathML은 프레젠테이션과 콘텐츠를 의미적으로 모두 표현하므로 더 많은 사용자가 더 쉽게 접근할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;반복수의 간단한 예는 수학적 표현으로 내용과 표현을 간결하고 명확하게 설명하는 것이 얼마나 어려운지를 보여줍니다. 특히, 일부 수업 환경에서는 중요하지만 재귀를 나타내는 오버라인의 위치와 위치를 설명하는 것이 번거롭습니다. 더 복잡한 표현식이나 방정식의 경우 이미지 대신 텍스트를 사용하면 충분한 세부 정보를 간결하게 제공하지 못할 수 있습니다. MathML은 텍스트가 아닌 코드 내에서 이러한 의미를 제공하는 데 도움이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.46.45.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VagZf/btskizbhhGz/GK7N13GV7KXs4RZr2NQGek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VagZf/btskizbhhGz/GK7N13GV7KXs4RZr2NQGek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VagZf/btskizbhhGz/GK7N13GV7KXs4RZr2NQGek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVagZf%2FbtskizbhhGz%2FGK7N13GV7KXs4RZr2NQGek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;98&quot; data-filename=&quot;스크린샷 2023-06-09 오후 4.46.45.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098288887&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;math&amp;gt;
  &amp;lt;mstack stackalign=&quot;right&quot;&amp;gt;
    &amp;lt;msline length=&quot;1&quot;/&amp;gt;
    &amp;lt;mn&amp;gt; 0.3333 &amp;lt;/mn&amp;gt;
  &amp;lt;/mstack&amp;gt;
&amp;lt;/math&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근성 지원: MathML, 웹 브라우저 및 보조 기술&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대부분의 웹 브라우저는 MathML을 올바르게 렌더링하기 위해 플러그인이 필요하며, 특히 이 예제에서 사용된 새로운 MathML 3.0 기능의 경우 더욱 그렇습니다. 아래 MathML 예제를 보려면 이 Firefox 플러그인이 필요할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;MathJax와 같이 웹 브라우저용 MathML을 폴리필하는 일부 라이브러리는 접근성 기능을 지원합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;MathML에 대한 접근성 지원은 다양하지만 웹 브라우저와 보조 기술이 발전함에 따라 계속 개선되고 있습니다. 어떤 기술을 사용할지 결정하기 전에 MathML 지원을 평가하는 것이 중요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹킷 기반 및 Mozilla 기반 브라우저의 MathML 상태에 대한 자세한 정보를 확인하세요.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;위의 코드에는 보조 기술에 콘텐츠와 프레젠테이션을 모두 전달하는 의미론적 정보가 포함되어 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;복잡한 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;복잡한 이미지에는 짧은 구절이나 문장으로 전달할 수 있는 것보다 더 많은 정보가 포함되어 있습니다. 일반적으로 다음과 같은 이미지가 이에 해당합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;순서도 및 조직도를 포함한 그래프 및 차트&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;페이지 텍스트가 사용자가 이미지를 이해할 수 있는지에 따라 달라지는 다이어그램 및 일러스트레이션&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;날씨 시스템과 같은 위치 또는 기타 정보를 보여주는 지도&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이러한 경우 두 부분으로 구성된 텍스트 대체물이 필요합니다. 첫 번째 부분은 이미지를 식별하기 위한 짧은 설명이며, 적절한 경우 긴 설명의 위치를 표시합니다. 두 번째 부분은 이미지가 전달하는 필수 정보를 텍스트로 표현하는 긴 설명입니다. 다음 예는 이러한 짧은 설명과 긴 설명을 제공하는 데 사용할 수 있는 다양한 접근 방식을 보여줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;긴 설명&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지의 구성이 중요하여 긴 설명을 제공해야 하는 상황이 있습니다. 예를 들어, 막대형 차트에서 사용된 색상의 순서와 열의 상대적 높이는 차트가 나타내는 실제 값과 추세 외에도 차트의 구조에 대한 관련 정보일 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;복잡한 이미지는 많은 사람들, 특히 저시력자, 학습 장애가 있는 사람, 주제에 대한 경험이 부족한 사람에게는 이해하기 어려울 수 있습니다. 콘텐츠를 더 많은 사람에게 전달하려면 모든 사람이 이해할 수 있는 긴 설명을 제공하세요. 예를 들어 설명을 주요 콘텐츠의 일부로 표시합니다. 또한 이미지의 불필요한 복잡성을 줄이고 모든 사람이 이해하기 쉽게 만들 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;더 복잡한 이미지는 함께 제공되는 텍스트에서 참조하고 요약하는 것도 좋은 방법입니다. 예를 들어 &quot;다음 그래프는 1분기에는 방문자 수가 감소했지만 2분기에는 회복되었음을 보여줍니다.&quot;와 같은 참조 문구는 이미지가 전달하고자 하는 관련 정보를 파악하는 데 도움이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예시 1 ) 구조화된 정보를 포함하는 설명&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서 웹사이트 방문자 통계의 막대형 차트에는 이미지의 alt 속성을 통해 제공되는 &quot;사이트 1~3에 대한 2014년 1분기 월별 및 총 방문자를 보여주는 막대형 차트&quot;라는 짧은 설명이 있습니다. 긴 설명은 시각적으로 표시되는 척도, 값, 관계 및 추세를 포함한 자세한 정보를 제공합니다. 예를 들어, 긴 설명은 막대형 차트에 인코딩된 사이트 1의 감소하는 값, 사이트 2의 일관된 값, 사이트 3의 증가하는 값을 지적할 수 있습니다. 다음 예에서 사용된 긴 설명 접근 방식은 이 섹션의 뒷부분에 설명되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 5.02.44.png&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CottY/btskuN7lRHU/BLjiwlFNeu5AFiOUtYAEw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CottY/btskuN7lRHU/BLjiwlFNeu5AFiOUtYAEw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CottY/btskuN7lRHU/BLjiwlFNeu5AFiOUtYAEw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCottY%2FbtskuN7lRHU%2FBLjiwlFNeu5AFiOUtYAEw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;817&quot; height=&quot;474&quot; data-filename=&quot;스크린샷 2023-06-09 오후 5.02.44.png&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;474&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;이 이미지와 관련된 긴 설명 예시를 참조하세요.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 방법 중 첫 번째와 네 번째 방법은 웹 브라우저 및 검색 엔진과 같은 다른 프로그램에서 정보를 사용할 수 있도록 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 ) 이미지 옆에 긴 설명에 대한 텍스트 링크 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 접근 방식은 이미지 옆에 긴 설명이 포함된 별도의 웹 페이지 또는 동일한 웹 페이지의 섹션을 가리키는 텍스트 링크를 제공합니다. 링크 텍스트는 목적지를 명확히 하고 이미지와 연결되어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098468590&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;img
    src=&quot;chart.png&quot;
    alt=&quot;사이트 1~3의 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대 차트&quot; /&amp;gt;
  &amp;lt;br&amp;gt;
  &amp;lt;a href=&quot;2014-first-qtr.html&quot;&amp;gt;Example.com 사이트 방문자 2014년 1월부터 3월까지의 막대형 차트 텍스트 설명&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 접근 방식은 모든 웹 브라우저와 보조 기술에서 지원되며 모든 사람이 긴 설명을 사용할 수 있습니다. 그러나 링크는 의미론적으로 이미지와 연결되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML5 &amp;lt;figure&amp;gt; 및 &amp;lt;figcaption&amp;gt; 요소를 사용하여 이미지와 링크를 의미적으로 그룹화할 수 있습니다. 그림에 role=&quot;group&quot;을 추가하면 &amp;lt;figure&amp;gt; 요소의 기본 시맨틱을 지원하지 않는 웹 브라우저와의 하위 호환성을 유지할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098491912&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;figure role=&quot;group&quot;&amp;gt;
    &amp;lt;img
        src=&quot;chart.png&quot;
        alt=&quot;사이트 1~3의 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대 차트&quot;&amp;gt;
    &amp;lt;figcaption&amp;gt;
        &amp;lt;a href=&quot;2014-first-qtr.html&quot;&amp;gt;Example.com 사이트 방문자 2014년 1월부터 3월까지의 막대형 차트 텍스트 설명&amp;lt;/a&amp;gt;
    &amp;lt;/figcaption&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 ) alt 속성에 긴 설명의 위치 설명하기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지와 동일한 웹 페이지에 긴 설명이 제공되는 경우 이미지의 alt 속성을 사용하여 해당 위치를 설명할 수 있습니다. 위치 정보는 사용자가 콘텐츠를 찾는 데 도움이 되도록 명확하고 정확해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098539013&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  &amp;lt;img
    src=&quot;chart.png&quot;
    alt=&quot;사이트 1~3에 대한 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대형 차트입니다. 사이트 방문자 전체 텍스트 제목 아래에 설명되어 있습니다.&quot;&amp;gt;
&amp;lt;/p&amp;gt;
[&amp;hellip;]
&amp;lt;h4&amp;gt;사이트 방문자 전체 텍스트&amp;lt;/h4&amp;gt;
[&amp;hellip;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 3 ) 이미지와 인접한 긴 설명(HTML5)을 구조적으로 연결하기&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML5 &amp;lt;figure&amp;gt; 요소를 사용하여 이미지와 긴 설명을 모두 묶을 수 있습니다. 긴 설명(제목, 텍스트 및 표로 표시됨)은 &amp;lt;figcaption&amp;gt; 요소로 둘러싸입니다. 이 설명은 &amp;lt;figure&amp;gt; 요소의 의미를 전달하지 않는 웹 브라우저에서 포함된 &amp;lt;figure&amp;gt; 요소에 role=&quot;group&quot;을 사용하여 이미지와 명시적으로 연결됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098600670&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;figure role=&quot;group&quot;&amp;gt;
  &amp;lt;img src=&quot;chart.png&quot;
    alt=&quot;사이트 1~3의 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대형 차트는 아래에 자세히 설명되어 있습니다.&quot;&amp;gt;
  &amp;lt;figcaption&amp;gt;
    &amp;lt;h2&amp;gt;개요&amp;lt;/h2&amp;gt;
    &amp;lt;p&amp;gt;이 차트는 2014년 1분기 웹사이트 조회수를 보여줍니다...&amp;lt;/p&amp;gt;
    &amp;lt;h2&amp;gt;값&amp;lt;/h2&amp;gt;
    &amp;lt;table&amp;gt;
      &amp;lt;caption&amp;gt;2014년 1월부터 3월까지 Example.com 사이트 방문자 수&amp;lt;/caption&amp;gt;
      &amp;lt;tr&amp;gt;&amp;hellip;&amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
  &amp;lt;/figcaption&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 4 ) longdesc를 통해 긴 설명에 대한 링크 제공&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;longdesc 속성에는 이미지에 대한 긴 설명을 제공하는 별도의 웹 페이지의 URI 또는 긴 설명을 제공하는 동일한 페이지의 요소를 참조하는 조각 식별자가 포함될 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;longdesc 속성에 긴 설명이 있는 다른 웹 페이지를 참조하는 URI가 포함된 경우 접근 방식 1(이미지 옆에 긴 설명에 대한 텍스트 링크)도 적용하는 것이 좋습니다. 이 방법은 longdesc 속성을 완전히 지원하지 않는 웹 브라우저 및 보조 기술을 위한 해결 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098685574&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img
  src=&quot;chart.png&quot;
  alt=&quot;사이트 1~3의 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대 차트&quot;
  longdesc=&quot;2014-first-qtr.html&quot;&amp;gt;
&amp;lt;a href=&quot;2014-first-qtr.html&quot;&amp;gt;긴 설명&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근성 지원 : 긴 설명, 웹 브라우저 및 보조 기술&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Firefox에서는 이미지의 컨텍스트 메뉴에 있는 '설명 보기'를 통해 긴 설명으로 연결된 긴 설명을 사용할 수 있습니다. 비슷한 방식으로 긴 설명 액세스 기능을 추가하는 공식 Chrome 확장 프로그램도 있습니다. Safari는 longdesc를 지원하지 않습니다. 다른 웹 브라우저에서는 현재 스크린 리더 사용자만 longdesc를 사용할 수 있습니다. 모바일 플랫폼은 현재 longdesc를 지원하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위에서 언급한 이미지 컨텍스트 메뉴 외에 longdesc 속성의 존재를 시각적으로 표시하는 브라우저는 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;longdesc 속성에 # 뒤에 같은 웹 페이지에 있는 요소의 ID(&quot;해시 링크&quot;)가 포함된 경우, 이는 긴 설명을 제공하는 같은 웹 페이지의 요소를 나타냅니다. 웹 브라우저 및 보조 기술의 지원 여부는 다를 수 있지만 예시 2, 접근 방식 1과 유사한 사용 사례를 다룹니다. 긴 설명이 이미지와 가까운 곳에 있는 경우 (접근 방식 2를 적용하여) 추가 링크가 필요하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687098715511&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img
  src=&quot;chart.png&quot;
  alt=&quot;사이트 1~3의 2014년 1분기 월별 및 총 방문자 수를 보여주는 막대 차트&quot;
  longdesc=&quot;#chart-longdesc&quot;&amp;gt;
[&amp;hellip;]
&amp;lt;div id=&quot;chart-longdesc&quot;&amp;gt;
  [&amp;hellip;]
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2: 텍스트 정보가 포함된 설명&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;WAI-ARIA aria-describedby 속성을 사용하면 longdesc 접근 방식과 유사한 방식으로 동일한 웹 페이지의 어느 곳에서나 제공되는 이미지의 설명에 연결할 수 있습니다. 속성 값은 긴 설명을 제공하는 요소의 ID입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;중요: aria-describedby가 참조하는 요소는 하나의 연속된 텍스트 단락으로 취급됩니다. 스크린 리더 및 기타 보조 기술은 제목 및 표와 같은 구조적 정보에 액세스할 수 없습니다. 따라서 구조적 관계를 표시하지 않고 해당 탐색 메커니즘 없이 포함된 요소의 텍스트를 읽거나 제공합니다. 따라서 이 접근 방식은 이전 예제에서와 같이 구조적 정보가 필요하지 않고 텍스트로만 구성된 긴 설명에 대해서만 작동합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 웹 페이지에 있는 텍스트 단락을 사용하여 공작의 머리를 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오후 5.48.05.png&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsmfoO/btskuYugPXA/cE4DsZtIeYfLKH07fdsjpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsmfoO/btskuYugPXA/cE4DsZtIeYfLKH07fdsjpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsmfoO/btskuYugPXA/cE4DsZtIeYfLKH07fdsjpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsmfoO%2FbtskuYugPXA%2FcE4DsZtIeYfLKH07fdsjpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;929&quot; height=&quot;513&quot; data-filename=&quot;스크린샷 2023-06-09 오후 5.48.05.png&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098779603&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;peacock.jpg&quot;
     alt=&quot;수컷 공작새 머리&quot;
     aria-describedby=&quot;description&quot; /&amp;gt;
[&amp;hellip;]
&amp;lt;p id=&quot;description&quot;&amp;gt;
 수컷은 왕관의 금속성 파란색이며 머리의 깃털은 짧고 말려 있습니다. 머리의 부채꼴 볏은 깃털로 만들어져 있으며 검은색 축이 드러나 있고 연두색 물갈퀴로 끝이 있습니다. 눈 위에는 흰색 줄무늬가 있고 눈 아래에는 초승달 모양의 흰색 패치가 흰색 피부로 형성되어 있습니다. 머리 옆면에는 무지개 빛깔의 녹청색 깃털이 있습니다. 등에는 검은색과 구리색 무늬가 있는 비늘 모양의 청록색 깃털이 있습니다.
&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 그룹&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;때로는 이미지 그룹을 함께 사용하여 하나의 정보를 나타내기도 합니다. 예를 들어 별표 아이콘 모음은 함께 등급을 나타냅니다. 이 경우 이미지 중 하나만 전체 컬렉션을 설명하는 대체 텍스트가 필요하고 다른 이미지는 보조 기술에서 무시되도록 비어 있는 alt 속성을 갖습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 경우에는 이미지 그룹이 관련 이미지의 컬렉션을 나타낼 수 있습니다. 예를 들어, 주제별로 관련된 예술 작품 모음을 표시할 수 있습니다. 이 경우 각 이미지에는 그룹 내 관계뿐만 아니라 개별 이미지를 설명하는 대체 텍스트가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 하나의 정보를 전달하는 여러 이미지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다섯 개의 이미지가 결합된 이 그룹은 제품 등급을 보여줍니다. 전체 평점을 나타내는 이미지 5개(채워진 별 3개, 반쯤 채워진 별 1개, 비어 있는 별 1개)가 있습니다. 첫 번째 이미지의 대체 텍스트는 &quot;평점: 별 5개 중 3.5점&quot;입니다. 다른 모든 이미지에는 null(비어 있는) alt 속성(alt=&quot;&quot;)이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.32.40.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;40&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsvYAm/btskizh2iA5/FCuBL2yZWsz8DeonVSDbVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsvYAm/btskizh2iA5/FCuBL2yZWsz8DeonVSDbVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsvYAm/btskizh2iA5/FCuBL2yZWsz8DeonVSDbVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsvYAm%2Fbtskizh2iA5%2FFCuBL2yZWsz8DeonVSDbVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;40&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.32.40.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098866203&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Rating:
&amp;lt;img src=&quot;star-full.jpg&quot;  alt=&quot;3.5 out of 5 stars&quot;&amp;gt;
&amp;lt;img src=&quot;star-full.jpg&quot;  alt=&quot;&quot;&amp;gt;
&amp;lt;img src=&quot;star-full.jpg&quot;  alt=&quot;&quot;&amp;gt;
&amp;lt;img src=&quot;star-half.jpg&quot;  alt=&quot;&quot;&amp;gt;
&amp;lt;img src=&quot;star-empty.jpg&quot; alt=&quot;&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2 ) 이미지 컬렉션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 예시에서는 HTML5 &amp;lt;figure&amp;gt; 및 &amp;lt;figcaption&amp;gt; 요소를 사용하여 컬렉션의 각 이미지에 캡션을 제공합니다. &amp;lt;figure&amp;gt; 요소는 중첩될 수 있으며, 이 예에서는 전체 이미지 컬렉션에 대한 캡션을 제공하는 데 사용됩니다. 그룹 값이 있는 WAI-ARIA 속성 role은 보조 기술에 이 그룹을 나타내는 데 사용되며, aria-labelledby는 figcaption 요소가 개별 그룹에 대한 레이블로 사용되도록 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고: 웹 브라우저 및 보조 기술 지원은 이 특정 WAI-ARIA 속성 및 값에 따라 다릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.37.07.png&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;1038&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CJGa7/btskrbm8cLE/K5EnlckGS0786LjoUA6qqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CJGa7/btskrbm8cLE/K5EnlckGS0786LjoUA6qqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CJGa7/btskrbm8cLE/K5EnlckGS0786LjoUA6qqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCJGa7%2Fbtskrbm8cLE%2FK5EnlckGS0786LjoUA6qqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;931&quot; height=&quot;1038&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.37.07.png&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;1038&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687098938606&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;figure role=&quot;group&quot; aria-labelledby=&quot;fig1&quot;&amp;gt;
  &amp;lt;figcaption id=&quot;fig1&quot;&amp;gt;
    The castle through the ages: 1423, 1756, and 1936 respectively.
  &amp;lt;/figcaption&amp;gt;


  &amp;lt;figure role=&quot;group&quot; aria-labelledby=&quot;fig11&quot;&amp;gt;
    &amp;lt;img src=&quot;castle-etching.jpg&quot;
      alt=&quot;The castle has one tower, and a tall wall around it.&quot;&amp;gt;
    &amp;lt;figcaption id=&quot;fig11&quot;&amp;gt;Charcoal on  wood. Anonymous, circa 1423.&amp;lt;/figcaption&amp;gt;
  &amp;lt;/figure&amp;gt;

  &amp;lt;figure role=&quot;group&quot; aria-labelledby=&quot;fig12&quot;&amp;gt;
    &amp;lt;img src=&quot;castle-painting.jpg&quot;
      alt=&quot;The castle now has two towers and two walls.&quot;&amp;gt;
    &amp;lt;figcaption id=&quot;fig12&quot;&amp;gt;Oil-based paint on canvas. Eloisa Faulkner, 1756.&amp;lt;/figcaption&amp;gt;
  &amp;lt;/figure&amp;gt;

  &amp;lt;figure role=&quot;group&quot; aria-labelledby=&quot;fig13&quot;&amp;gt;
    &amp;lt;img src=&quot;castle-fluro.jpg&quot;
      alt=&quot;The castle lies in ruins, the original tower all that remains in one piece.&quot;&amp;gt;
    &amp;lt;figcaption id=&quot;fig13&quot;&amp;gt;Film photograph. &amp;lt;span lang=&quot;fr&quot;&amp;gt;S&amp;eacute;raphin M&amp;eacute;d&amp;eacute;ric Mieusement&amp;lt;/span&amp;gt;, 1936.&amp;lt;/figcaption&amp;gt;
  &amp;lt;/figure&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 맵&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클라이언트 측 이미지 맵은 사용자 상호 작용을 허용하는 &amp;lt;area&amp;gt; 요소('핫스팟')로 정의된 선택 가능한 영역으로 나뉘어진 이미지입니다. 일반적으로 선택 가능한 영역은 다른 페이지로 연결되는 링크입니다. 이미지 맵의 경우 &amp;lt;img&amp;gt; 요소 자체(정보 컨텍스트를 전달하기 위해)와 각 &amp;lt;area&amp;gt; 요소(링크 대상 또는 링크를 따라갈 경우 시작될 작업을 전달하기 위해) 모두에 텍스트 대체 텍스트가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1 ) 개별 페이지로 연결되는 링크가 있는 조직도&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 조직도는 각 이사의 홈페이지로 연결되는 링크를 제공하는 데 사용됩니다. &lt;br /&gt;이미지의 대체 텍스트는 &quot;이사회 및 관련 직원 :&quot;입니다. 링크된 각 &amp;lt;area&amp;gt;에는 개인을 식별할 수 있는 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;&quot;Davy Jones: 회장&quot;와 같은&amp;nbsp;&lt;/span&gt;대체 텍스트가 있습니다.&amp;nbsp; 개인에 대한 대체 텍스트에는 그래프에 관계도 명시되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.39.17.png&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhVQBq/btskuW4jHkg/mXHek2be2pNp1hPZkTlywK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhVQBq/btskuW4jHkg/mXHek2be2pNp1hPZkTlywK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhVQBq/btskuW4jHkg/mXHek2be2pNp1hPZkTlywK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhVQBq%2FbtskuW4jHkg%2FmXHek2be2pNp1hPZkTlywK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;227&quot; data-filename=&quot;스크린샷 2023-06-12 오전 11.39.17.png&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1687099110219&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;orgchart.png&quot;
     alt=&quot;Board of directors and related staff: &quot;
     usemap=&quot;#Map&quot;&amp;gt;

&amp;lt;map name=&quot;Map&quot; id=&quot;Map&quot;&amp;gt;
  &amp;lt;area
    shape=&quot;rect&quot;
    coords=&quot;176,14,323,58&quot;
    href=&quot;&amp;hellip;&quot;
    alt=&quot;Davy Jones: Chairman&quot;
  &amp;gt;

  &amp;lt;area
    shape=&quot;rect&quot;
    coords=&quot;81,75,226,114&quot;
    href=&quot;&amp;hellip;&quot;
    alt=&quot;Carole Brewster: Company Secretary&quot;
  &amp;gt;
  &amp;lt;area
    shape=&quot;rect&quot;
    coords=&quot;6,138,155,182&quot;
    href=&quot;&amp;hellip;&quot;
    alt=&quot;Harry H Brown: Marketing Director (reports to chairman)&quot;
  &amp;gt;
  &amp;lt;area
    shape=&quot;rect&quot;
    coords=&quot;175,138,323,182&quot;
    href=&quot;&amp;hellip;&quot;
    alt=&quot;Paula Holbein: Sales Director (reports to chairman)&quot;
  &amp;gt;
  &amp;lt;area
    shape=&quot;rect&quot;
    coords=&quot;345,136,496,186&quot;
    href=&quot;&amp;hellip;&quot;
    alt=&quot;Hugh Howard: Finance Director (reports to chairman)&quot;
  &amp;gt;
&amp;lt;/map&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 맵에 대한 브라우저 구현은 작성 시점에 따라 다르므로 &lt;a href=&quot;https://lists.w3.org/Archives/Public/public-html-bugzilla/2015Jan/0020.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;이 HTML 버그&lt;/a&gt;를 참조하세요. 다양한 구현을 수용하려면 다음 사항에 유의하세요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 이미지 맵은 한 번만 사용하세요. 즉, 동일한 맵이 포함된 여러 이미지를 사용하려면 맵을 복제하고 다른 ID를 사용해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;map&amp;gt; 요소를 이미지의 직접적인 형제 요소로 배치합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 &lt;br /&gt;영역의 좌표가 이미지와 동일한 비율로 배율이 조정되지 않은 경우 일부 모바일 장치에서는 이미지 맵이 제대로 작동하지 않을 수 있습니다. 이를 보완하려면 동일한 페이지에 중복 텍스트 링크를 제공하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;alt 결정 트리&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 의사 결정 트리에서는 다양한 상황에서 &amp;lt;img&amp;gt; 요소의 alt 속성을 사용하는 방법을 설명합니다. 일부 유형의 이미지의 경우 텍스트 이미지 대신 장식용 이미지나 웹 글꼴에 CSS 배경 이미지를 사용하는 등의 대체 접근 방식이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.01.44.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bePx03/btskg8FvkQk/RqdnWqSkKYgTVNlLCEUnsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bePx03/btskg8FvkQk/RqdnWqSkKYgTVNlLCEUnsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bePx03/btskg8FvkQk/RqdnWqSkKYgTVNlLCEUnsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbePx03%2Fbtskg8FvkQk%2FRqdnWqSkKYgTVNlLCEUnsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;947&quot; height=&quot;1031&quot; data-filename=&quot;스크린샷 2023-06-12 오후 12.01.44.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 사용 팁&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;적절한 텍스트 대체물 선택하기&lt;/b&gt; 웹 페이지를 이해해야 하는 상대방에게 전화로 웹 페이지를 소리 내어 읽어준다고 상상해 보세요. 이렇게 하면 이미지에 어떤 정보나 기능이 있는지 결정하는 데 도움이 됩니다. 정보가 없고 링크나 버튼이 아닌 것처럼 보이는 이미지는 장식용으로 처리하는 것이 안전합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;텍스트 대체 정보에 우선순위를 둡니다&lt;/b&gt; 가장 중요한 정보를 맨 앞에 배치하는 것을 목표로 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;대체 텍스트의 길이&lt;/b&gt; 대체 텍스트는 이미지의 용도를 최대한 간결하게 설명해야 합니다. 짧은 구절이나 문장 이상의 설명이 필요한 경우 복잡한 이미지에서 설명한 긴 설명 방법 중 하나를 사용하는 것이 좋습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;반응형 디자인&lt;/b&gt; 텍스트 레이블이 있는 아이콘은 작은 화면에서 볼 때 텍스트 레이블이 잘 보이지 않는 경우가 많습니다. 아이콘이 해당 크기에서 읽을 수 있고, 텍스트 없이도 이해할 수 있으며, 텍스트 설명이 있는지 확인하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;alt 속성 내 구두점&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 텍스트의 경우 대체 텍스트에 구두점을 사용하면 정보를 더 쉽게 이해할 수 있습니다. 특히 이미지와 인접한 텍스트 사이에 공백 문자가 없는 경우 대체 텍스트에 공백 문자를 추가하여 스크린 리더가 읽을 때 단어가 함께 이어지는 것을 방지해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;장식 이미지를 숨기기 위해 널(비어 있는) 텍스트 대체(alt=&quot;&quot;)를 사용하는 경우 따옴표 사이에 공백 문자가 없는지 확인합니다. 공백 문자가 있으면 보조 기술에서 이미지가 효과적으로 숨겨지지 않을 수 있습니다. 예를 들어 일부 스크린 리더는 따옴표 사이에 공백 문자를 넣어도 이미지가 있음을 알립니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;텍스트 대체에 불필요한 정보가 있는 경우&lt;/b&gt; 일반적으로 대체 텍스트에 '이미지', '아이콘' 또는 '그림'과 같은 단어를 포함할 필요가 없습니다. 볼 수 있는 사람들은 이미 이 사실을 알고 있으며 스크린 리더는 이미지가 있음을 알려줍니다. 일부 상황에서는 그림, 사진, 일러스트레이션 등을 구분하는 것이 중요할 수 있지만 일반적인 용어는 피하는 것이 가장 좋습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;SVG 그래픽&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SVG 그래픽은 다른 이미지 형식(PNG, JPEG, GIF)과 마찬가지로 &amp;lt;img&amp;gt; 요소의 src 속성에서 참조할 수 있습니다. 이 경우 이 튜토리얼의 예제는 SVG에도 사용할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SVG 이미지는 HTML과 같은 태그로 구성되므로 해당 코드를 HTML5에서 직접 사용할 수도 있습니다. 이 경우 SVG 이미지 내의 &amp;lt;title&amp;gt; 요소에 텍스트 대안을 제공할 수 있습니다. 접근성 지원을 개선하기 위해 해당 제목은 예를 들어 &amp;lt;svg&amp;gt; 요소의 aria-labelledby 속성에서 참조해야 합니다.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;로고&lt;/b&gt; 텍스트가 포함된 로고 이미지는 일부 접근성 요구 사항에서 면제됩니다. 예를 들어 최소 대비 요구 사항이 없습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1687099425473&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;svg aria-labelledby=&quot;svgtitle1&quot;&amp;gt;
  &amp;lt;title id=&quot;svgtitle1&quot;&amp;gt;설정&amp;lt;/title&amp;gt; [기타 svg 코드] 
&amp;lt;/svg&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기타 W3C 리소스&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장애인의 웹 사용 방법에서 &lt;a href=&quot;https://www.w3.org/WAI/intro/people-use-web/principles#alternatives&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;텍스트가 아닌 콘텐츠에 텍스트 대체물을 제공하는 것&lt;/a&gt;에 대한 배경 정보를 확인하세요.&lt;/li&gt;
&lt;li&gt;사이트에서 이미지의 접근성을 테스트합니다. &lt;a href=&quot;https://www.w3.org/WAI/EO/Drafts/eval/checks#images&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;빠른 이미지 텍스트 대체&lt;/a&gt; 확인.&lt;/li&gt;
&lt;li&gt;텍스트 대체물 선택 시 좋은 사례와 나쁜 사례의 예는 &lt;a href=&quot;https://www.w3.org/WAI/demos/bad/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;데모 전후(BAD) 데모&lt;/a&gt;에서 확인할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 글은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>img</category>
      <category>W3C</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/7</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images#entry7comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:17:18 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wRwEY/btskS2p6LIf/yCVkokk0BLcWYFQlkzf70k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wRwEY/btskS2p6LIf/yCVkokk0BLcWYFQlkzf70k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wRwEY/btskS2p6LIf/yCVkokk0BLcWYFQlkzf70k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwRwEY%2FbtskS2p6LIf%2FyCVkokk0BLcWYFQlkzf70k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴는 네비게이션에 사용되며 웹 페이지 작동의 중요한 부분인 기능을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;구조&lt;/b&gt; : 메뉴의 구조를 반영하고 적절한 레이블을 지정하는 방식으로 메뉴를 마크업합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;스타일링&lt;/b&gt; : 일반적으로 인식되는 디자인 패턴을 사용하여 메뉴와 메뉴 항목의 상태를 구분합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;플라이아웃 메뉴&lt;/b&gt; : 플라이아웃(드롭다운) 하위 메뉴를 마우스와 키보드로 적절하게 사용할 수 있는지 확인합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;애플리케이션 메뉴&lt;/b&gt; : 데스크톱 애플리케이션 메뉴와 유사하도록 특정 마크업 및 키보드 동작을 추가합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;이것이 왜 중요한가요?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;네비게이션 메뉴는 웹사이트의 기본 구조를 반영합니다. 애플리케이션 메뉴는 애플리케이션의 필수 기능에 대한 액세스를 제공합니다. 따라서 메뉴는 웹 페이지와 애플리케이션의 중요한 부분이며 디자인 및 개발 과정에서 특별한 주의가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스크린 &lt;b&gt;리더 및 키보드 사용자&lt;/b&gt;는 키보드 상호 운용성 및 다양한 방식으로 메뉴를 조작할 수 있는 마크업의 이점을 누릴 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;소근육 장애가 있는 사용자와 터치스크린 사용자&lt;/b&gt;는 클릭하거나 탭할 수 있는 더 큰 타겟이 필요합니다. 플라이아웃 메뉴에서는 마우스가 클릭 가능한 영역을 벗어난 직후에 하위 메뉴가 사라지지 않아야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;주의력이 제한적이거나 단기 기억력이 약한 사용자&lt;/b&gt;는 현재 페이지와 같이 쉽게 식별할 수 있는 상태를 명확하고 뚜렷하게 표시한 메뉴가 유용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 구조&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시맨틱 마크업은 메뉴 구조를 사용자에게 전달합니다. 의미론적으로 코딩된 메뉴는 작은 화면 디스플레이, 화면 확대 및 기타 보조 기술과 같은 다양한 상황에 쉽게 적응할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 표현&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 목록을 사용하여 메뉴 구조를 전달합니다. 이러한 구조적 정보를 통해 보조 기술은 메뉴의 항목 수를 알리고 해당 탐색 기능을 제공할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 정렬되지 않은 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 항목이 특정 순서가 아닌 경우 정렬되지 않은 목록(&amp;lt;ul&amp;gt;)을 사용합니다. 웹사이트 탐색과 같은 대부분의 메뉴 유형이 이 범주에 속합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211304401&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Shop&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Space Bears&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Mars Cars&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : 정렬 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 항목의 순서가 중요한 경우 정렬된 목록(&amp;lt;ol&amp;gt;)을 사용합니다. 다음 예제에서 메뉴 항목은 시공 매뉴얼의 단계를 나타냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211337508&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Unpacking the Space Craft&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Check Contents of Package&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Build Chassis&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Build Engine&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Mount Engine to Chassis&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 식별&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 메뉴에 직접 액세스할 수 있도록 &amp;lt;nav&amp;gt; 요소를 사용하여 메뉴를 식별합니다. 메뉴를 마크업하는 다른 기법은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%ED%8E%98%EC%9D%B4%EC%A7%80%20%EC%98%81%EC%97%AD%20(Page%20Regions)-1&quot;&gt;페이지 영역 튜토리얼&lt;/a&gt;에 설명되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211385313&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;hellip;
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 레이블&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴를 쉽게 찾고 이해할 수 있도록 메뉴에 레이블을 붙입니다. 레이블은 사용자가 웹 페이지의 여러 메뉴를 구분할 수 있도록 짧지만 설명이 포함되어야 합니다. 제목,  aria-label 또는 aria-labelledby를 사용하여 레이블을 제공합니다. 이러한 기법은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%EC%98%81%EC%97%AD%20%EB%9D%BC%EB%B2%A8%EB%A7%81%20(Labeling%20Regions)-1&quot;&gt;영역 레이블 지정 튜토리얼&lt;/a&gt;에 설명되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211581772&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-labelledby=&quot;mainmenulabel&quot;&amp;gt;
  &amp;lt;h2 id=&quot;mainmenulabel&quot; class=&quot;visuallyhidden&quot;&amp;gt;Main Menu&amp;lt;/h2&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;현재 항목 표시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마크업을 사용하여 웹사이트의 현재 페이지와 같은 메뉴의 현재 항목을 표시하여 메뉴의 방향을 개선할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 1 : 보이지 않는 텍스트 사용 &lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스크린 리더 사용자에게 소리내어 읽히고 다른 보조 기술에서 현재 항목을 표시하는 데 사용되는 보이지 않는 레이블을 제공하여 사용자 지정 레이블 텍스트를 허용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 현재 항목과 상호 작용할 수 없도록 앵커(&amp;lt;a&amp;gt;)를 제거합니다. 이렇게 하면 오해를 피하고 현재 메뉴 항목이 활성화되어 있음을 강조할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예제에서는 메뉴 항목에 보이지 않는 텍스트 &quot;현재 페이지:&quot;가 있고 &amp;lt;a&amp;gt; 요소는 현재 클래스가 있는 &amp;lt;span&amp;gt;으로 대체됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211854776&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;li&amp;gt;
  &amp;lt;span class=&quot;current&quot;&amp;gt;
    &amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;Current Page: &amp;lt;/span&amp;gt;
    Space Bears
  &amp;lt;/span&amp;gt;
&amp;lt;/li&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근 방식 2 : WAI-ARIA 사용 &lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴의 현재 페이지를 표시하려면 aria-current=&quot;page&quot; 속성을 사용합니다. 이 기법은 HTML에서 앵커(&amp;lt;a&amp;gt;)를 제거할 수 없을 때 특히 유용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예제에서는 탐색의 링크가 페이지의 주요 콘텐츠를 가리킵니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686211928517&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;li&amp;gt;
  &amp;lt;a href=&quot;#main&quot; aria-current=&quot;page&quot;&amp;gt;
    Space Bears
  &amp;lt;/a&amp;gt;
&amp;lt;/li&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 스타일링&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;명확하고 일관된 스타일링을 사용하면 사용자가 메뉴를 더 빨리 찾고 인식할 수 있습니다. 이러한 스타일링에는 웹사이트 전체 페이지에서 동작, 모양 및 상대적 위치의 일관성이 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;일반적인 고려 사항&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴에는 장식용 또는 기능을 전달하는 아이콘과 같은 이미지가 사용되는 경우가 많습니다. 이러한 이미지에는 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;이미지 튜토리얼&lt;/a&gt;에 설명된 대로 대체 텍스트가 필요합니다. 대비 요구 사항은 메뉴 및 해당 항목에도 적용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;위치&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹사이트의 대상 고객이 예상하는 위치에 메뉴를 표시합니다. 예를 들어 웹사이트의 기본 탐색 메뉴는 일반적으로 페이지 왼쪽에 세로로 배치되거나 상단에 가로로 배치됩니다. 애플리케이션 메뉴는 일반적으로 상단에 가로로 배치됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;식별&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴와 해당 항목을 쉽게 식별할 수 있어야 합니다. 이전 섹션에서 설명한 구조적 마크업 외에도 메뉴 및 항목의 존재를 시각적으로 전달하기 위해서는 색 구성표가 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 사람이 메뉴 레이블을 볼 수 있도록 하는 것이 좋습니다. 예를 들어 이 자습서에서 '메뉴 자습서', '모든 자습서', '이 페이지에서'는 모든 사용자가 사용할 수 있는 표시되는 제목으로 제공되는 메뉴 레이블입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;가독성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 텍스트에 맞게 메뉴 및 메뉴 항목의 크기를 적절하게 조정합니다. 메뉴 크기는 다양한 텍스트 크기에 맞게 조정하여 단어가 긴 언어와 더 큰 텍스트가 필요한 사용자를 수용해야 합니다. 대문자 텍스트, 줄 바꿈, 하이픈은 종종 산만하고 읽기 어렵기 때문에 가급적 사용하지 마세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;크기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모바일 디바이스의 작은 터치스크린과 손재주가 약한 사람들을 위해 패딩과 같은 충분한 공백을 제공하세요. 동시에 사용자가 텍스트 크기를 늘리거나 페이지를 확대할 때 메뉴와 페이지의 다른 콘텐츠가 겹치지 않도록 하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;메뉴 항목&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;색상 및 기타 스타일링 옵션을 사용하여 메뉴 항목과 해당 상태를 전달하세요. 일부 사용자는 이러한 변경 사항을 인식하지 못할 수 있으므로 색상에만 의존하지 마세요. 예를 들어 메뉴 항목이 선택되었을 때 색상을 변경하는 것 외에도 메뉴 항목의 모양을 변경하거나 아이콘을 추가할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;기본 상태&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 항목을 활성화할 수 있는 페이지의 영역으로 시각적으로 표시하려면 고유한 스타일을 사용합니다. 그러나 대문자나 작은 대문자로 된 단어와 같이 과장된 텍스트 장식은 텍스트를 읽기 어렵게 만들 수 있으므로 피하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;호버 및 포커스 상태&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메뉴 탐색 시 사용자에게 시각적 안내를 제공하는 호버링 또는 포커스된 메뉴 항목을 변경합니다. 이 예에서 호버링 및 포커스 상태는 반전된 색 구성표(흰색에 파란색이 아닌 흰색에 파란색)와 밑줄을 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686212158551&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nav a:hover,
nav a:focus {
  color: #036;
  background-color: #fff;
  text-decoration: underline;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;활성 상태&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클릭, 탭 또는 키보드 선택을 통해 활성화된 메뉴 항목을 표시합니다. 예를 들어 사용자가 잘못된 메뉴 항목을 클릭한 경우와 같이 의도하지 않은 활성화를 식별할 수 있습니다. 이 예에서 활성화된 항목은 진한 파란색 배경과 밑줄이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686212452024&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nav a:active {
  color: #fff;
  background-color: #024;
  text-decoration: underline;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;현재 상태&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 이전 섹션에서 설명한 구조적 마크업과 더불어 현재 메뉴 항목을 시각적으로 표시합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서는 현재 메뉴 항목에 뚜렷한 색상과 모양을 부여하기 위해 다른 색상 조합(회색에 검은색)과 하단 테두리를 추가했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;nav [aria-current=page] {
  background-color: #bbb;
  color: #000;
  border-bottom: .25em solid #444;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방문한 상태&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;안내 단계와 같은 일부 메뉴 유형의 경우 사용자가 이미 방문한 적이 있는 메뉴 항목을 표시하는 것이 유용할 수 있습니다. 그러나 대부분의 메뉴는 방문한 상태에 따라 변경되지 않을 것으로 예상됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;box-i&quot;&gt;

&lt;nav aria-label=&quot;(example) Main Navigation&quot; id=&quot;currentnav&quot;&gt;
		&lt;ul&gt;
				&lt;li&gt;&lt;a href=&quot;#currentnav&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#currentnav&quot;&gt;Shop&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#currentnav&quot; aria-current=&quot;page&quot;&gt;Space Bears&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#currentnav&quot;&gt;Mars Cars&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#currentnav&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
&lt;/nav&gt;

&lt;style&gt;
	#currentnav {
			display:table;
			width:100%;
	}
	#currentnav ul {
			margin: 0;
			padding: 0;
			display: table-row;
			background-color: #036;
			color: #fff;
	}
	#currentnav li {
			display:table-cell;
			width: 20%;
			text-align: center;
	}
	#currentnav a {
			display: block;
			padding: .25em;
			border-bottom: .25em solid #E8E8E8;
	}
	#currentnav a {
			color: #fff;
			text-decoration: none;
	}
	#currentnav [aria-current=page] {
			background-color: #bbb;
			color: #000;
			border-color: #444;
	}
	#currentnav a:hover,
	#currentnav a:focus {
		color: #036 !important;
		background-color: #fff;
		text-decoration: underline;
		outline:none;
	}
	#currentnav a:active {
		color: #fff;
		background-color: #024;
		text-decoration: underline;
	}
&lt;/style&gt;

&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;드롭다운 메뉴&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;플라이아웃(또는 드롭다운) 메뉴를 사용하여 웹 사이트의 페이지 계층 구조에 대한 개요를 제공합니다. 사용자가 정보를 찾을 수 있는 위치를 알고 있다면 여러 페이지를 로드할 필요가 없습니다. 애플리케이션 메뉴도 이와 유사하게 구현되지만 WAI-ARIA 마크업이 추가됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;손 떨림과 같이 손재주가 약한 사람들은 종종 드롭다운 메뉴를 조작하는 데 어려움을 겪습니다. 일부에게는 불가능할 수도 있습니다. 상위 메뉴 항목의 페이지에서 하위 메뉴 항목을 반복하는 등 하위 메뉴 항목에 도달할 수 있는 다른 방법을 제공해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하위 메뉴 표시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마크업을 사용하여 시각적으로 하위 메뉴가 있는 탐색 메뉴 항목을 표시합니다. 다음 예에서는 하위 메뉴가 아이콘으로 시각적으로 표시됩니다. WAI-ARIA 마크업 aria-expanded=&quot;false&quot;는 하위 메뉴 탐색이 현재 숨겨져 있거나 &quot;collapsed&quot;을 선언합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687245705592&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-label=&quot;Main&quot;&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Shop&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li class=&quot;has-submenu&quot;&amp;gt;
      &amp;lt;a href=&quot;&amp;hellip;&quot; aria-expanded=&quot;false&quot;&amp;gt;
        Space Bears
      &amp;lt;/a&amp;gt;
      &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Space Bear 6&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Space Bear 6 Plus&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Mars Cars&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;드롭다운 기능&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;드롭다운 기능은 마우스와 키보드 사용자를 약간 별도로 고려한 CSS와 스크립트를 사용하여 만들어졌습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마우스 사용자&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예제는 상위 메뉴 항목을 마우스 오버했을 때 하위 메뉴를 표시하고 숨기는 데 아래의 CSS 코드를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687245848315&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nav &amp;gt; ul li  ul { display: none; }
nav &amp;gt; ul li:hover ul { display: block; }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 스크립팅을 사용하여 마우스가 해당 영역을 벗어날 때 하위 메뉴 항목이 즉시 닫히는 것을 약간 지연시킵니다. 이 지연을 통해 마우스로 탐색하는 것이 정확하지 않을 때 메뉴를 더 쉽게 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서는 타이머를 사용하여 1초의 지연을 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;box-i&quot;&gt;

&lt;nav aria-label=&quot;(Example) Main&quot; id=&quot;flyoutnavmousefixed&quot;&gt;
		&lt;ul&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Shop&lt;/a&gt;&lt;/li&gt;
				&lt;li class=&quot;has-submenu&quot;&gt;
						&lt;a href=&quot;#flyoutnavmousefixed&quot; aria-expanded=&quot;false&quot;&gt;Space Bears&lt;/a&gt;
						&lt;ul&gt;
								&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Space Bear 6&lt;/a&gt;&lt;/li&gt;
								&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Space Bear 6 Plus&lt;/a&gt;&lt;/li&gt;
						&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Mars Cars&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavmousefixed&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
&lt;/nav&gt;

&lt;style&gt;
.show-overflow {
		overflow: visible !important;
}

.show-overflow .box-content {
		overflow: visible !important;
}
	#flyoutnavmousefixed {
			display:table;
			width:100%;
	}
	#flyoutnavmousefixed &gt; ul {
			margin: 0;
			padding: 0;
			display: table-row;
			background-color: #036;
			color: #fff;
	}
	#flyoutnavmousefixed &gt; ul &gt; li {
			display:table-cell;
			width: 20%;
			text-align: center;
			position:relative;
	}
	#flyoutnavmousefixed a,
	#flyoutnavmousefixed .current {
			display: block;
			padding: .25em;
			border-color: #E8E8E8;
            color: #fff;
	}
	#flyoutnavmousefixed a {
			color: #fff;
			text-decoration: none;
			border: 1px solid #036;
	}
	#flyoutnavmousefixed a:hover,
	#flyoutnavmousefixed a:focus {
			background-color: #fff;
			color: #036;
			text-decoration: underline;
	}
	#flyoutnavmousefixed .current {
			background-color: #bbb;
			color: #000;
			border-color: #444;
	}

	#flyoutnavmousefixed &gt; ul &gt; li &gt; ul {
		display: none;
		position:absolute;
		left:0;
		right:0;
		top:100%;
		padding:0;
		margin:0;
		background-color: #036;
	}

#flyoutnavmousefixed &gt; ul &gt; li.open &gt; ul {
		display:block;
	}

	#flyoutnavmousefixed &gt; ul &gt; li &gt; ul a{
		border-bottom-width: 1px;
	}
&lt;/style&gt;

&lt;script&gt;
var menuItems1 = document.querySelectorAll('#flyoutnavmousefixed li.has-submenu');
var timer1;

Array.prototype.forEach.call(menuItems1, function(el, i){
		el.addEventListener(&quot;mouseover&quot;, function(event){
				this.className = &quot;has-submenu open&quot;;
				clearTimeout(timer1);
		});
		el.addEventListener(&quot;mouseout&quot;, function(event){
				timer1 = setTimeout(function(event){
						document.querySelector(&quot;#flyoutnavmousefixed .has-submenu.open&quot;).className = &quot;has-submenu&quot;;
				}, 1000);
		});
});
&lt;/script&gt;

&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1687245915907&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var menuItems = document.querySelectorAll('li.has-submenu');
Array.prototype.forEach.call(menuItems, function(el, i){
  el.addEventListener(&quot;mouseover&quot;, function(event){
    this.className = &quot;has-submenu open&quot;;
    clearTimeout(timer);
  });
  el.addEventListener(&quot;mouseout&quot;, function(event){
    timer = setTimeout(function(event){
      document.querySelector(&quot;.has-submenu.open&quot;).className = &quot;has-submenu&quot;;
    }, 1000);
  });
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;키보드 사용자&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;탭 키를 사용하여 메뉴를 탐색할 때 하위 메뉴가 열리면 키보드 사용자가 다음 최상위 항목으로 이동하기 위해 모든 하위 메뉴 항목을 거쳐야 하므로 하위 메뉴가 열리지 않아야 합니다. 대신 다음 접근 방식 중 하나를 고려하십시오.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근방식 1) 부모 요소를 토글로 사용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;상위 메뉴 항목이 하위 메뉴를 요약만 하고 웹 페이지 링크와 같은 기능을 수행할 필요가 없는 상황에서 이 접근 방식을 사용합니다. 이 경우 사용자가 최상위 항목을 활성화하면 스크립트에 의해 하위 메뉴가 열리고 초점이 하위 메뉴에서 벗어나면 하위 메뉴가 닫힙니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고 &lt;br /&gt;href 속성 값은 무시되지만 JavaScript가 로드되지 않은 경우 기존 문서에 링크할 수 있습니다.&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; font-size: 1.12em; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;box-i&quot;&gt;

&lt;nav aria-label=&quot;(Example 2) Main&quot; id=&quot;flyoutnavkbfixed&quot;&gt;
		&lt;ul&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Shop&lt;/a&gt;&lt;/li&gt;
				&lt;li class=&quot;has-submenu&quot;&gt;
						&lt;a href=&quot;#flyoutnavkbfixed&quot; aria-expanded=&quot;false&quot;&gt;Space Bears&lt;/a&gt;
						&lt;ul&gt;
								&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Space Bear 6&lt;/a&gt;&lt;/li&gt;
								&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Space Bear 6 Plus&lt;/a&gt;&lt;/li&gt;
						&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Mars Cars&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbfixed&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
&lt;/nav&gt;

&lt;style&gt;
.show-overflow {
		overflow: visible !important;
}

.show-overflow .box-content {
		overflow: visible !important;
}
	#flyoutnavkbfixed {
			display:table;
			width:100%;
	}
	#flyoutnavkbfixed &gt; ul {
			margin: 0;
			padding: 0;
			display: table-row;
			background-color: #036;
			color: #fff;
	}
	#flyoutnavkbfixed &gt; ul &gt; li {
			display:table-cell;
			width: 20%;
			text-align: center;
			position:relative;
	}
	#flyoutnavkbfixed a,
	#flyoutnavkbfixed .current {
			display: block;
			padding: .25em;
			border-color: #E8E8E8;
	}
	#flyoutnavkbfixed a {
			color: #fff;
			text-decoration: none;
      border: 1px solid #036;
	}
	#flyoutnavkbfixed a:hover,
		#flyoutnavkbfixed a:focus {
			background-color: #fff;
			color: #036;
			border: 1px solid #036;
			text-decoration: underline;
	}
	#flyoutnavkbfixed .current {
			background-color: #bbb;
			color: #000;
			border-color: #444;
	}

	#flyoutnavkbfixed &gt; ul &gt; li &gt; ul {
		display: none;
		position:absolute;
		left:0;
		right:0;
		top:100%;
		padding:0;
		margin:0;
		background-color: #036;
	}

#flyoutnavkbfixed &gt; ul &gt; li.open &gt; ul {
		display:block;
	}

	#flyoutnavkbfixed &gt; ul &gt; li &gt; ul a{
		border-bottom-width: 1px;
	}
&lt;/style&gt;

&lt;script&gt;
// focusin/out event polyfill (firefox)

!function(){
	var w = window,
	d = w.document;

	if( w.onfocusin === undefined ){
		d.addEventListener('focus' ,addPolyfill ,true);
		d.addEventListener('blur' ,addPolyfill ,true);
		d.addEventListener('focusin' ,removePolyfill ,true);
		d.addEventListener('focusout' ,removePolyfill ,true);
	}
	function addPolyfill(e){
		var type = e.type === 'focus' ? 'focusin' : 'focusout';
		var event = new CustomEvent(type, { bubbles:true, cancelable:false });
		event.c1Generated = true;
		e.target.dispatchEvent( event );
	}
	function removePolyfill(e){
if(!e.c1Generated){ // focus after focusin, so chrome will the first time trigger tow times focusin
	d.removeEventListener('focus' ,addPolyfill ,true);
	d.removeEventListener('blur' ,addPolyfill ,true);
	d.removeEventListener('focusin' ,removePolyfill ,true);
	d.removeEventListener('focusout' ,removePolyfill ,true);
}
setTimeout(function(){
	d.removeEventListener('focusin' ,removePolyfill ,true);
	d.removeEventListener('focusout' ,removePolyfill ,true);
});
}
}();

function hasClass(el, className) {
	if (el.classList) {
		return el.classList.contains(className);
	} else {
		return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
	}
}

var menuItems1 = document.querySelectorAll('#flyoutnavkbfixed li.has-submenu');
var timer1, timer2;

Array.prototype.forEach.call(menuItems1, function(el, i){
		el.addEventListener(&quot;mouseover&quot;, function(event){
				this.className = &quot;has-submenu open&quot;;
				clearTimeout(timer1);
		});
		el.addEventListener(&quot;mouseout&quot;, function(event){
				timer1 = setTimeout(function(event){
						var opennav = document.querySelector(&quot;#flyoutnavkbfixed .has-submenu.open&quot;);
						opennav.className = &quot;has-submenu&quot;;
						opennav.querySelector('a').setAttribute('aria-expanded', &quot;false&quot;);
				}, 1000);
		});
		el.querySelector('a').addEventListener(&quot;click&quot;,  function(event){
			if (this.parentNode.className == &quot;has-submenu&quot;) {
				this.parentNode.className = &quot;has-submenu open&quot;;
				this.setAttribute('aria-expanded', &quot;true&quot;);
			} else {
				this.parentNode.className = &quot;has-submenu&quot;;
				this.setAttribute('aria-expanded', &quot;false&quot;);
			}
			event.preventDefault();
		});
		var links = el.querySelectorAll('a');
		Array.prototype.forEach.call(links, function(el, i){
			el.addEventListener(&quot;focus&quot;, function() {
				if (timer2) {
					clearTimeout(timer2);
					timer2 = null;
				}
			});
			el.addEventListener(&quot;blur&quot;, function(event) {
				timer2 = setTimeout(function () {
					var opennav = document.querySelector(&quot;#flyoutnavkbfixed .has-submenu.open&quot;)
					if (opennav) {
						opennav.className = &quot;has-submenu&quot;;
						opennav.querySelector('a').setAttribute('aria-expanded', &quot;false&quot;);
					}
				}, 10);
			});
		});
});
&lt;/script&gt;

&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 코드는 has-submenu 클래스가 있는 모든 최상위 항목을 반복하고 상태에 따라 하위 메뉴를 열거나 닫는 클릭 이벤트를 추가합니다. 또한 하위 메뉴가 열려 있으면 aria-expanded 속성이 true로 설정되고 그렇지 않으면 false로 설정됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&amp;nbsp;&lt;br /&gt;이름과 상관없이 클릭 이벤트는 링크가 활성화되는 즉시 입력 방법에 관계없이 활성화됩니다.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1687246126082&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var menuItems = document.querySelectorAll('li.has-submenu');
Array.prototype.forEach.call(menuItems, function(el, i){
  el.querySelector('a').addEventListener(&quot;click&quot;,  function(event){
    if (this.parentNode.className == &quot;has-submenu&quot;) {
      this.parentNode.className = &quot;has-submenu open&quot;;
      this.setAttribute('aria-expanded', &quot;true&quot;);
    } else {
      this.parentNode.className = &quot;has-submenu&quot;;
      this.setAttribute('aria-expanded', &quot;false&quot;);
    }
    event.preventDefault();
    return false;
  });
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근방식 2) 버튼 요소를 토글로 사용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;상위 메뉴 항목이 웹 페이지 링크와 같은 기능을 수행해야 하는 경우 상위 항목에 별도의 버튼을 추가하여 하위 메뉴를 열고 닫을 수 있습니다. 이 버튼은 하위 메뉴의 존재를 시각적으로 표시하는 역할도 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;box-i&quot;&gt;

&lt;nav aria-label=&quot;(Example 3) Main&quot; id=&quot;flyoutnavkbbtn&quot;&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Shop&lt;/a&gt;&lt;/li&gt;
		&lt;li class=&quot;has-submenu&quot;&gt;
			&lt;a href=&quot;#flyoutnavkbbtn&quot; aria-expanded=&quot;false&quot;&gt;Space Bears&lt;/a&gt;
			&lt;ul&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Space Bear 6&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Space Bear 6 Plus&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Mars Cars&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#flyoutnavkbbtn&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/nav&gt;

&lt;style&gt;
.show-overflow {
		overflow: visible !important;
}

.show-overflow .box-content {
		overflow: visible !important;
}
#flyoutnavkbbtn {
display:table;
width:100%;
}
#flyoutnavkbbtn &gt; ul {
margin: 0;
padding: 0;
display:flex;
background-color: #036;
color: #fff;
}
#flyoutnavkbbtn &gt; ul &gt; li {
display:flex;
width: 20%;
text-align: center;
position:relative;
}
#flyoutnavkbbtn a,
#flyoutnavkbbtn .current {
flex:1;
display: block;
padding: .25em;
border-color: #E8E8E8;
}
#flyoutnavkbbtn a {
color: #fff;
text-decoration: none;
border: 1px solid #036;
}
#flyoutnavkbbtn a:hover,
#flyoutnavkbbtn a:focus {
background-color: #fff;
color: #036;
border: 1px solid #036;
text-decoration: underline;
}
#flyoutnavkbbtn .current {
background-color: #bbb;
color: #000;
border-color: #444;
}

#flyoutnavkbbtn &gt; ul &gt; li &gt; ul {
display: none;
position:absolute;
left:0;
right:0;
top:100%;
padding:0;
margin:0;
background-color: #036;
}

#flyoutnavkbbtn &gt; ul &gt; li.open &gt; ul {
display:block;
}

#flyoutnavkbbtn &gt; ul &gt; li &gt; ul a{
border-bottom-width: 1px;
}
#flyoutnavkbbtn .has-submenu &gt; a:after {
margin-left: 5px;
line-height: 14px;
content: '';
}
#flyoutnavkbbtn .has-submenu:hover &gt; a:hover:after,
#flyoutnavkbbtn .has-submenu &gt; a:focus:after {
content: '';
}

#flyoutnavkbbtn .has-submenu button {
background-color: transparent;
border: none;
padding:0;
line-height: 1;
padding: 3px;
}

#flyoutnavkbbtn .has-submenu button &gt; span {
display:inline-block;
width: .8em;
height: .8em;
background: url(https://www.w3.org/WAI/content-images/wai-tutorials/menus/ex-dropdown-inactive.png) center no-repeat;
}

#flyoutnavkbbtn .has-submenu:hover button &gt; span,
#flyoutnavkbbtn .has-submenu button:focus &gt; span {
background: url(https://www.w3.org/WAI/content-images/wai-tutorials/menus/ex-dropdown-active.png) #fff;
}

#flyoutnavkbbtn .has-submenu button,
#flyoutnavkbbtn .has-submenu a:focus + button {
background-color: #036;
}
#flyoutnavkbbtn .has-submenu:hover button,
#flyoutnavkbbtn .has-submenu button:hover,
#flyoutnavkbbtn .has-submenu button:focus {
background: #FFF;
border: 1px solid #036;
border-left: none;
}
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}
&lt;/style&gt;

&lt;script&gt;
// focusin/out event polyfill (firefox)

!function(){
	var w = window,
	d = w.document;

	if( w.onfocusin === undefined ){
		d.addEventListener('focus' ,addPolyfill ,true);
		d.addEventListener('blur' ,addPolyfill ,true);
		d.addEventListener('focusin' ,removePolyfill ,true);
		d.addEventListener('focusout' ,removePolyfill ,true);
	}
	function addPolyfill(e){
		var type = e.type === 'focus' ? 'focusin' : 'focusout';
		var event = new CustomEvent(type, { bubbles:true, cancelable:false });
		event.c1Generated = true;
		e.target.dispatchEvent( event );
	}
	function removePolyfill(e){
if(!e.c1Generated){ // focus after focusin, so chrome will the first time trigger tow times focusin
	d.removeEventListener('focus' ,addPolyfill ,true);
	d.removeEventListener('blur' ,addPolyfill ,true);
	d.removeEventListener('focusin' ,removePolyfill ,true);
	d.removeEventListener('focusout' ,removePolyfill ,true);
}
setTimeout(function(){
	d.removeEventListener('focusin' ,removePolyfill ,true);
	d.removeEventListener('focusout' ,removePolyfill ,true);
});
}
}();

function hasClass(el, className) {
	if (el.classList) {
		return el.classList.contains(className);
	} else {
		return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
	}
}

var menuItems1 = document.querySelectorAll('#flyoutnavkbbtn li.has-submenu');
var timer1, timer2;

var parseHTML = function(str) {
	var tmp = document.implementation.createHTMLDocument();
	tmp.body.innerHTML = str;
	return tmp.body.children;
};

Array.prototype.forEach.call(menuItems1, function(el, i){
		var activatingA = el.querySelector('a');
		var btn = '&lt;button&gt;&lt;span&gt;&lt;span class=&quot;visuallyhidden&quot;&gt;show submenu for “' + activatingA.text + '”&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;';
		activatingA.insertAdjacentHTML('afterend', btn);
		el.addEventListener(&quot;mouseover&quot;, function(event){
				this.className = &quot;has-submenu open&quot;;
				this.querySelector('a').setAttribute('aria-expanded', &quot;true&quot;);
				this.querySelector('button').setAttribute('aria-expanded', &quot;true&quot;);
				clearTimeout(timer1);
		});
		el.addEventListener(&quot;mouseout&quot;, function(event){
				timer1 = setTimeout(function(event){
						document.querySelector('#flyoutnavkbbtn .has-submenu.open a').setAttribute('aria-expanded', &quot;false&quot;);
						document.querySelector('#flyoutnavkbbtn .has-submenu.open button').setAttribute('aria-expanded', &quot;false&quot;);
            document.querySelector(&quot;#flyoutnavkbbtn .has-submenu.open&quot;).className = &quot;has-submenu&quot;;
				}, 1000);
		});
		el.querySelector('button').addEventListener(&quot;click&quot;,  function(event){
			if (this.parentNode.className == &quot;has-submenu&quot;) {
				this.parentNode.className = &quot;has-submenu open&quot;;
				this.parentNode.querySelector('a').setAttribute('aria-expanded', &quot;true&quot;);
				this.parentNode.querySelector('button').setAttribute('aria-expanded', &quot;true&quot;);
			} else {
				this.parentNode.className = &quot;has-submenu&quot;;
				this.parentNode.querySelector('a').setAttribute('aria-expanded', &quot;false&quot;);
				this.parentNode.querySelector('button').setAttribute('aria-expanded', &quot;false&quot;);
			}
			event.preventDefault();
		});
		var links = el.querySelectorAll('a');
		Array.prototype.forEach.call(links, function(el, i){
			el.addEventListener(&quot;focus&quot;, function() {
				if (timer2) {
					clearTimeout(timer2);
					timer2 = null;
				}
			});
			el.addEventListener(&quot;blur&quot;, function(event) {
				timer2 = setTimeout(function () {
					var opennav = document.querySelector(&quot;#flyoutnavkbbtn .has-submenu.open&quot;)
					if (opennav) {
						opennav.className = &quot;has-submenu&quot;;
						opennav.querySelector('a').setAttribute('aria-expanded', &quot;false&quot;);
						opennav.querySelector('button').setAttribute('aria-expanded', &quot;false&quot;);
					}
				}, 10);
			});
		});
});
&lt;/script&gt;

&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 코드는 하위 메뉴가 있는 모든 최상위 메뉴 항목에 버튼을 추가합니다. 버튼이 활성화되면 하위 메뉴가 표시되거나 숨겨집니다. 버튼의 보이지 않는 레이블은 하위 메뉴의 상태를 반영하여 &quot;하위 메뉴 표시&quot; 또는 &quot;하위 메뉴 숨기기&quot;로 설정됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;참고&lt;br /&gt;가능하면 버튼의 레이블에 상위 메뉴 항목의 이름을 포함하세요(예: 예: &quot;Space Bears 하위 메뉴 표시&quot;.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1687246460849&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var menuItems = document.querySelectorAll('li.has-submenu');
Array.prototype.forEach.call(menuItems, function(el, i){
  var activatingA = el.querySelector('a');
  var btn = '&amp;lt;button&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span class=&quot;visuallyhidden&quot;&amp;gt;show submenu for &amp;ldquo;' + activatingA.text + '&amp;rdquo;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;';
  activatingA.insertAdjacentHTML('afterend', btn);

  el.querySelector('button').addEventListener(&quot;click&quot;,  function(event){
    if (this.parentNode.className == &quot;has-submenu&quot;) {
      this.parentNode.className = &quot;has-submenu open&quot;;
      this.parentNode.querySelector('a').setAttribute('aria-expanded', &quot;true&quot;);
      this.parentNode.querySelector('button').setAttribute('aria-expanded', &quot;true&quot;);
    } else {
      this.parentNode.className = &quot;has-submenu&quot;;
      this.parentNode.querySelector('a').setAttribute('aria-expanded', &quot;false&quot;);
      this.parentNode.querySelector('button').setAttribute('aria-expanded', &quot;false&quot;);
    }
    event.preventDefault();
  });
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애플리케이션 메뉴&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 애플리케이션 메뉴는 탐색 메뉴와 동일한 기본 구조를 사용합니다. 가로 메뉴 모음으로 구성되며 레이어 메뉴 기능을 사용하는 경우가 많습니다. 그러나 추가 마크업 및 키보드 동작을 추가해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;추가 마크업&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-expanded 및 aria-haspopup 속성 외에도 애플리케이션 메뉴에 필요한 시맨틱을 제공하기 위해 다음과 같은 WAI-ARIA 역할이 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;menubar : (일반적으로 가로) 메뉴 표시줄을 나타냅니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;menu : 메뉴 표시줄의 링크 또는 명령 집합을 나타내며, 플라이아웃 메뉴에 사용됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;menuitem : 개별 메뉴 항목을 나타냅니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;separator : 메뉴에서 두 메뉴 항목 그룹 사이의 구분 기호를 나타냅니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1687348522682&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul role=&quot;menubar&quot; id=&quot;appmenu&quot;&amp;gt;
  &amp;hellip;
  &amp;lt;li role=&quot;menuitem&quot; aria-haspopup=&quot;true&quot;&amp;gt;
    Edit
    &amp;lt;ul role=&quot;menu&quot;&amp;gt;
      &amp;lt;li role=&quot;menuitem&quot;&amp;gt;Undo&amp;lt;/li&amp;gt;
      &amp;lt;li role=&quot;menuitem&quot;&amp;gt;Redo&amp;lt;/li&amp;gt;
      &amp;lt;li role=&quot;separator&quot;&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li role=&quot;menuitem&quot;&amp;gt;Cut&amp;lt;/li&amp;gt;
      &amp;lt;li role=&quot;menuitem&quot;&amp;gt;Copy&amp;lt;/li&amp;gt;
      &amp;lt;li role=&quot;menuitem&quot;&amp;gt;Paste&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애플리케이션 메뉴에는 일반적으로 링크가 없으며 기능을 제공하기 위해 스크립팅에 의존합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;WAI-ARIA 역할을 추가한다고 해서 메뉴의 기능이나 키보드 동작이 자동으로 활성화되는 것은 아닙니다. 이러한 기능은 스크립팅을 사용하여 추가해야 합니다. WAI-ARIA 속성 및 키보드 동작에 대한 자세한 설명은 &lt;a href=&quot;https://www.w3.org/TR/wai-aria-practices/#menu&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WAI-ARIA 저작 사례 문서(초안)&lt;/a&gt;에서 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;&lt;b&gt;키보드 동작&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 애플리케이션 메뉴는 데스크톱 애플리케이션 메뉴처럼 작동해야 합니다. 예를 들어 왼쪽 및 오른쪽 키는 최상위 항목을 반복하는 데 사용되며 위쪽 및 아래쪽 화살표는 하위 메뉴를 탐색하는 데 사용됩니다. 탭 키를 누르면 다음 메뉴 항목이 아닌 메뉴 뒤의 다음 항목에 초점이 맞춰집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;키보드로 메뉴 항목에 초점을 설정할 수 있도록 항목에 -1 값의 tabindex 속성이 지정됩니다. 첫 번째 주 메뉴 항목(이 예에서는 &quot;파일&quot;)에는 탭 순서에 추가되는 tabindex 값 0이 할당되어 사용자가 키보드를 사용하여 메뉴에 액세스할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1687348591040&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Array.prototype.forEach.call(appsMenuItems, function(el, i){
  if (0 == i) {
    el.setAttribute('tabindex', '0');
    el.addEventListener(&quot;focus&quot;, function() {
      currentIndex = 0;
    });
  } else {
    el.setAttribute('tabindex', '-1');
  }
});

Array.prototype.forEach.call(subMenuItems, function(el, i){
  el.setAttribute('tabindex', '-1');
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;최상위 메뉴 항목&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 표에는 최상위 메뉴 항목의 일반적인 동작이 요약되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;최상위 메뉴 항목에 대한 키 매핑&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-21 오후 10.40.08.png&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCi4yF/btskS3baV6p/XOocYo7gj9rKIW9Mo2jGJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCi4yF/btskS3baV6p/XOocYo7gj9rKIW9Mo2jGJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCi4yF/btskS3baV6p/XOocYo7gj9rKIW9Mo2jGJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCi4yF%2FbtskS3baV6p%2FXOocYo7gj9rKIW9Mo2jGJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;555&quot; data-filename=&quot;스크린샷 2023-06-21 오후 10.40.08.png&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하위 메뉴 항목&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 표에는 하위 메뉴 항목의 일반적인 동작이 요약되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;하위 메뉴 항목의 키 매핑&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-21 오후 10.43.42.png&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi99ia/btskRavFgOW/Vt9dtkz5ZKeVgvdyHmoxYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi99ia/btskRavFgOW/Vt9dtkz5ZKeVgvdyHmoxYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi99ia/btskRavFgOW/Vt9dtkz5ZKeVgvdyHmoxYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi99ia%2FbtskRavFgOW%2FVt9dtkz5ZKeVgvdyHmoxYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;866&quot; height=&quot;558&quot; data-filename=&quot;스크린샷 2023-06-21 오후 10.43.42.png&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 글은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>Navigation</category>
      <category>W3C</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/6</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus#entry6comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:17:06 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 2. 페이지 구조</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dauQNi/btskYKa8Ebe/cu9mD3TYectsxvr7XYTu81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dauQNi/btskYKa8Ebe/cu9mD3TYectsxvr7XYTu81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dauQNi/btskYKa8Ebe/cu9mD3TYectsxvr7XYTu81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdauQNi%2FbtskYKa8Ebe%2Fcu9mD3TYectsxvr7XYTu81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;잘 구조화된 콘텐츠는 보다 효율적인 탐색과 처리를 가능하게 합니다. &lt;br /&gt;웹 페이지와 애플리케이션에서 탐색 및 방향성을 개선하려면 HTML과 WAI-ARIA를 사용하세요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;페이지 영역 (Page Regions)&lt;/b&gt;&amp;nbsp;: HTML5 및 WAI-ARIA 역할을 사용하여 웹 페이지에서 영역을 식별하고 마크업합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;영역 라벨링 (Labeling Regions)&lt;/b&gt;&amp;nbsp;: 사용자가 영역을 구분하고 액세스할 수 있도록 영역에 레이블을 지정합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;제목 (Headings)&lt;/b&gt;&amp;nbsp;: 제목을 추가하고 논리적으로 중첩하여 웹 페이지의 섹션에 관계와 중요도에 따라 레이블을 지정합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;콘텐츠 구조 (Content Structure)&lt;/b&gt;&amp;nbsp;: 적절하고 의미 있는 요소를 사용하여 페이지의 콘텐츠를 마크업합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;왜 중요한가?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 잘 구성된 콘텐츠가 있는 페이지는 많은 웹 사용자에게 필수적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인지 및 학습 장애가 있는 사용자는 페이지에서 콘텐츠를 더 쉽게 찾고 우선 순위를 지정할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스크린 리더를 사용하는 사용자는 주요 콘텐츠로 바로 건너뛰고 자신에게 중요한 섹션으로 이동할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;키보드 사용자는 페이지와 해당 섹션을 더 효율적으로 탐색할 수 있습니다. 그렇지 않으면 사용자가 각 섹션의 모든 링크를 탐색하기 위해 탭 키를 여러 번 눌러야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인지 장애가 있는 사용자처럼 웹 페이지의 주요 콘텐츠만 표시하는 소프트웨어를 사용하는 사용자는 페이지 구조가 올바르게 마크업되어 있으면 더 나은 결과를 얻을 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저시력 장애인을 비롯한 시각 장애인은 페이지와 콘텐츠에 방향을 알려주는 단서가 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모바일 웹 사용자는 페이지가 올바르게 마크업된 경우에만 페이지의 주요 콘텐츠가 표시되는 소위 '리더' 또는 '읽기' 모드에 액세스할 수 있는 경우가 많습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 브라우저 플러그인을 사용하는 사용자는 랜드마크 역할을 사용하여 페이지의 특정 섹션으로 이동할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;접근성이 좋은 페이지 구조에는 장애인이 경험하는 것 외에도 추가적인 이점이 있습니다. 예를 들어, 검색 엔진은 데이터를 사용하여 페이지 콘텐츠의 색인을 더 잘 생성할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;페이지 영역 (Page Regions)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 페이지와 애플리케이션의 다양한 영역을 마크업하여 웹 브라우저와 보조 기술에서 식별할 수 있도록 합니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;페이지 헤더&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.47.09.png&quot; data-origin-width=&quot;129&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmRdHX/btsjH2yA1QC/aYWLafk4Rt9RKklEg2uBMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmRdHX/btsjH2yA1QC/aYWLafk4Rt9RKklEg2uBMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmRdHX/btsjH2yA1QC/aYWLafk4Rt9RKklEg2uBMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmRdHX%2FbtsjH2yA1QC%2FaYWLafk4Rt9RKklEg2uBMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;129&quot; height=&quot;86&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.47.09.png&quot; data-origin-width=&quot;129&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대부분의 웹사이트에는 웹사이트 로고, 검색 기능, 탐색 옵션 등 사이트 전체 정보가 포함된 영역이 모든 페이지 상단에 있습니다. HTML5는 이러한 영역을 정의하는 데 사용할 수 있는 &amp;lt;header&amp;gt; 요소를 제공합니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;br /&gt;&amp;lt;header&amp;gt; 요소가 &amp;lt;article&amp;gt; 및 &amp;lt;section&amp;gt; 요소 안에 사용되는 경우 해당 요소와 연결되지 않습니다. 이 요소는 WAI-ARIA banner 역할(role)을 하지 않으며 보조 기술에서 특별한 동작을 하지 않습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004833&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;header&amp;gt;
  ...
  &amp;lt;img src=&quot;/img/logo.png&quot; alt=&quot;SpaceBear Inc.&quot; /&amp;gt;
  ...
&amp;lt;/header&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;페이지 푸터&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.47.27.png&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xG2jq/btsjNNObSDK/rpWVVETKQ19PLtxGAH4kj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xG2jq/btsjNNObSDK/rpWVVETKQ19PLtxGAH4kj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xG2jq/btsjNNObSDK/rpWVVETKQ19PLtxGAH4kj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxG2jq%2FbtsjNNObSDK%2FrpWVVETKQ19PLtxGAH4kj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;126&quot; height=&quot;81&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.47.27.png&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;페이지 헤더와 마찬가지로 대부분의 웹사이트에는 저작권 정보, 개인정보처리방침 또는 고지 사항과 같은 사이트 전체 정보가 포함된 영역이 모든 페이지 하단에 있습니다. HTML5는 이러한 영역을 정의하는 데 사용할 수 있는 &amp;lt;footer&amp;gt; 요소를 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;br /&gt;&amp;lt;footer&amp;gt; 요소가 &amp;lt;article&amp;gt; 및 &amp;lt;section&amp;gt; 요소 안에 사용되는 경우 해당 요소와 연결되지 않습니다. 이 요소는 WAI-ARIA contentinfo 역할(role)을 가져오지 않으며 보조 기술에서 특별한 동작을 하지 않습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004834&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;footer&amp;gt;
  ...
  &amp;lt;p&amp;gt;&amp;amp;copy; 2023 SpaceBear Inc.&amp;lt;/p&amp;gt;
  ...
&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;네비게이션&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.48.06.png&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tqUMx/btsjNKDWhpZ/9lPExB8QCtN53qjeQZokMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tqUMx/btsjNKDWhpZ/9lPExB8QCtN53qjeQZokMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tqUMx/btsjNKDWhpZ/9lPExB8QCtN53qjeQZokMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtqUMx%2FbtsjNKDWhpZ%2F9lPExB8QCtN53qjeQZokMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;126&quot; height=&quot;83&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.48.06.png&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;nav&amp;gt; 요소는 탐색 메뉴를 식별하는 데 사용할 수 있습니다. 웹 페이지에는 여러 개의 탐색 메뉴가 있을 수 있습니다. &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%EC%98%81%EC%97%AD%20%EB%9D%BC%EB%B2%A8%EB%A7%81%20(Labeling%20Regions)-1&quot;&gt;label&lt;/a&gt;을 사용하여 각 탐색 메뉴를 식별합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004836&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-label=&quot;Main&quot;&amp;gt;
  ...
&amp;lt;/nav&amp;gt;

...

&amp;lt;nav aria-labelledby=&quot;regionheading&quot;&amp;gt;
  &amp;lt;h2 id=&quot;regionheading&quot;&amp;gt;On this page&amp;lt;/h2&amp;gt;
  ...
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #292c32; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;메뉴 튜토리얼&lt;/a&gt;에서 메뉴 생성에 대한 자세한 내용을 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;메인 콘텐츠&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.48.44.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oIK9D/btsjOo1VxnI/zqkSVBQT41iLLNJ33RJLdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oIK9D/btsjOo1VxnI/zqkSVBQT41iLLNJ33RJLdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oIK9D/btsjOo1VxnI/zqkSVBQT41iLLNJ33RJLdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoIK9D%2FbtsjOo1VxnI%2FzqkSVBQT41iLLNJ33RJLdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;125&quot; height=&quot;80&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.48.44.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;80&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 페이지 또는 애플리케이션의 주요 콘텐츠 영역을 &amp;lt;main&amp;gt; 요소를 사용하여 식별합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004836&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;main&amp;gt;
  &amp;lt;h1&amp;gt;Stellar launch weekend for the SpaceBear 7!&amp;lt;/h1&amp;gt;
  ...
&amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;보완 콘텐츠&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.49.00.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpOREl/btsjG0OSEdD/aq5EaUPXAHsByZ5Cxm7YRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpOREl/btsjG0OSEdD/aq5EaUPXAHsByZ5Cxm7YRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpOREl/btsjG0OSEdD/aq5EaUPXAHsByZ5Cxm7YRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpOREl%2FbtsjG0OSEdD%2Faq5EaUPXAHsByZ5Cxm7YRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;124&quot; height=&quot;79&quot; data-filename=&quot;스크린샷 2023-06-13 오후 1.49.00.png&quot; data-origin-width=&quot;124&quot; data-origin-height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주요 콘텐츠를 지원하지만 그 자체로 별개의 의미 있는 섹션인 영역을 &amp;lt;aside&amp;gt; 요소를 사용하여 식별합니다. &lt;br /&gt;(예: 주요 콘텐츠를 설명하거나 주석을 다는 사이드 노트)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004837&quot; class=&quot;html xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;aside&amp;gt;
  &amp;lt;h3&amp;gt;Related Articles&amp;lt;/h3&amp;gt;
  ...
&amp;lt;/aside&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;WAI-ARIA를 사용한 HTML5의 페이지 영역&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;현재 대부분의 웹 브라우저는 위의 HTML5 요소를 지원하며 접근성 API를 통해 보조 기술에 정보를 전달합니다. 그러나 WAI-ARIA를 지원하지만 아직 HTML5를 지원하지 않는 웹 브라우저 및 보조 기술과의 호환성을 극대화하려면 현재로서는 HTML5 요소와 해당 WAI-ARIA 역할을 모두 사용하는 것이 좋습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686199004837&quot; class=&quot;xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;header role=&quot;banner&quot;&amp;gt;...&amp;lt;/header&amp;gt;
&amp;lt;main role=&quot;main&quot;&amp;gt;...&amp;lt;/main&amp;gt;
&amp;lt;nav role=&quot;navigation&quot;&amp;gt;...&amp;lt;/nav&amp;gt;
&amp;lt;footer role=&quot;contentinfo&quot;&amp;gt;...&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 WAI-ARIA 리소스를 살펴보세요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://www.w3.org/WAI/intro/aria&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WAI-ARIA 개요&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://www.w3.org/TR/aria-in-html/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HTML에서 ARIA 사용 시 참고 사항&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;영역 라벨링 (Labeling Regions)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;같은 페이지에서 &amp;lt;nav&amp;gt; 요소를 사용하는 'main navigation' 및 'sub-navigation' 메뉴와 같이 동일한 유형의 두 페이지 영역을 구분하는 레이블을 제공합니다. 레이블은 페이지 영역의 기본 식별을 변경하는 데도 사용됩니다. &lt;br /&gt;(예: &amp;lt;aside&amp;gt; 영역을 &quot;광고&quot;로 식별).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;main&amp;gt;과 같이 고유한 영역은 추가 레이블이 필요하지 않습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근 1) aria-labelledby 사용&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;aria-labelledby를 사용하여 (고유) id로 기존 요소를 가리킵니다. 영역의 레이블은 참조된 요소의 콘텐츠입니다. 모든 요소는 이런 식으로 레이블이 될 수 있습니다. 레이블은 짧고 설명적이어야 합니다. 영역에 제목이 있는 경우 제목을 레이블로 사용하는 것이 좋습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686205662310&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-labelledby=&quot;regionheading&quot;&amp;gt;
  &amp;lt;h2 id=&quot;regionheadling&quot;&amp;gt;On this Page&amp;lt;/h2&amp;gt;
  ...
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;br /&gt;제목(headings)을 사용하는 이 접근 방식은 구형 웹 브라우저와도 호환되며 보조 기술은 HTML5 및 WAI-ARIA를 처리하지 않습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;접근 2) aria-label 사용&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;영역에 레이블을 지정하려면 WAI-ARIA aria-label 속성을 사용합니다. 레이블이 페이지에 시각적으로 표시되지 않아야 하는 경우 이 접근 방식을 고려하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686205822630&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;nav aria-label=&quot;Main&quot;&amp;gt;
  ...
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 (Headings)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목은 페이지에 있는 콘텐츠의 구성을 전달합니다. &lt;br /&gt;웹 브라우저, 플러그인 및 보조 기술에서는 이를 사용하여 페이지 내 탐색 기능을 제공할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 순위&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;순위(또는 수준)에 따라 제목을 중첩합니다. 가장 중요한 제목은 순위가 1(&amp;lt;h1&amp;gt;)이고 가장 중요하지 않은 제목은 순위가 6(&amp;lt;h6&amp;gt;)입니다. 순위가 같거나 높은 제목은 새 섹션을 시작하고 순위가 낮은 제목은 더 높은 순위의 섹션에 속하는 새 하위 섹션을 시작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 순위를 건너뛰면 혼란스러울 수 있으므로 가능한 경우 피해야 합니다. &lt;br /&gt;&amp;lt;h2&amp;gt; 바로 뒤에 &amp;lt;h4&amp;gt;가 오지 않도록 하세요. 예를 들어, 새 섹션을 시작하는 &amp;lt;h2&amp;gt;가 이전 섹션을 마무리 하는 &amp;lt;h4&amp;gt; 뒤에 올 수 있는 것처럼 하위 섹션을 닫을 때는 순위를 건너 뛰어도 괜찮습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;고정 페이지 섹션의 예외&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이드바와 같이 페이지의 고정된 섹션에서는 콘텐츠 영역의 순위에 따라 제목 순위가 변경되지 않아야 합니다. 이러한 경우 페이지 전체에서 일관성이 더 중요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트 구절 구성&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서 제목은 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;주요 콘텐츠와 같이&amp;nbsp;&lt;/span&gt;페이지의 텍스트 구절을 구성하는 데 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.03.14.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5TC4Y/btsmyZlqyXe/Gq2CmY0PjzfVt5cKkhAkH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5TC4Y/btsmyZlqyXe/Gq2CmY0PjzfVt5cKkhAkH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5TC4Y/btsmyZlqyXe/Gq2CmY0PjzfVt5cKkhAkH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5TC4Y%2FbtsmyZlqyXe%2FGq2CmY0PjzfVt5cKkhAkH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;947&quot; height=&quot;153&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.03.14.png&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;페이지 구성을 반영하는 제목&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목은 페이지 영역에 레이블을 지정하는 데 유용합니다. &lt;br /&gt;이 튜토리얼의 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#%EC%A0%91%EA%B7%BC%201)%20aria-labelledby%20%EC%82%AC%EC%9A%A9-1&quot;&gt;페이지 영역 레이블 지정 섹션&lt;/a&gt;에 설명된 대로 aria-labelledby를 사용하여 제목을 페이지 영역과 연결합니다. 제목이 표시되면 모든 사용자가 영역을 쉽게 식별할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 1) 네비게이션 이전의 기본 제목&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 첫 번째 예에서는 순위가 1인 제목이 문서에서 첫 번째 제목입니다. 페이지 구성을 위한 다른 모든 제목(네비게이션 메뉴, 사이드바, 푸터)은 한 등급 낮으며, 주요 콘텐츠의 제목도 마찬가지입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.03.02.png&quot; data-origin-width=&quot;1081&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tWscC/btsmtOFhrLq/viXLglVlzuPk4dYg6E2raK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tWscC/btsmtOFhrLq/viXLglVlzuPk4dYg6E2raK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tWscC/btsmtOFhrLq/viXLglVlzuPk4dYg6E2raK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtWscC%2FbtsmtOFhrLq%2FviXLglVlzuPk4dYg6E2raK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1081&quot; height=&quot;478&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.03.02.png&quot; data-origin-width=&quot;1081&quot; data-origin-height=&quot;478&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예 2) 네비게이션 이후의 기본 제목&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 두 번째 예제에서 주 제목은 사이트 이름이 아니라 콘텐츠 제목이며, 이는 1순위입니다. 콘텐츠의 부제목은 다른 모든 구조적 제목과 마찬가지로 2순위입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.02.49.png&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzbMdO/btsmzbTkDNu/aASB6MH2DdsyGOut3AKvmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzbMdO/btsmzbTkDNu/aASB6MH2DdsyGOut3AKvmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzbMdO/btsmzbTkDNu/aASB6MH2DdsyGOut3AKvmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzbMdO%2FbtsmzbTkDNu%2FaASB6MH2DdsyGOut3AKvmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1077&quot; height=&quot;466&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.02.49.png&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;콘텐츠 구조 (Content Structure)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹사이트 콘텐츠를 의미론적으로 마크업하여 웹사이트를 확장할 수 있도록 합니다. &lt;br /&gt;유효한 의미론은 재사용이 가능하고 보조 기술에 더 의미 있는 콘텐츠를 만듭니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;article&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;article&amp;gt; 요소는 웹 페이지에서 전체 또는 독립된 구성을 나타냅니다. 쇼핑 사이트의 상품이나 뉴스 사이트의 뉴스 기사 등이 기사의 예입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686206395859&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;article&amp;gt;
  &amp;lt;h2&amp;gt;Space Bear Classic&amp;lt;/h2&amp;gt;
  ...
&amp;lt;/article&amp;gt;
&amp;lt;article&amp;gt;
  &amp;lt;h2&amp;gt;Space Bear Extreme&amp;lt;/h2&amp;gt;
  ...
&amp;lt;/article&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;section&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;section&amp;gt; 요소는 웹 페이지 또는 기사의 일반적인 영역을 표시합니다. 콘텐츠의 주제별 그룹화에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686206432383&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;section&amp;gt;
  &amp;lt;h2&amp;gt;Chapter 2&amp;lt;/h2&amp;gt;
  ...
&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문단&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문단 요소(&amp;lt;p&amp;gt;)를 사용하여 지금 이 문단과 같이 텍스트 단락을 표시할 수 있습니다. 단락의 일관된 스타일링은 텍스트 가독성을 향상시킵니다. 또한 사용자가 보기를 사용자 지정할 때 더 많은 제어 기능을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;목록&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다양한 유형의 목록을 사용하여 정보의 성격에 따라 정보를 그룹화하여 사용자에게 방향을 제시하세요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬되지 않은 목록(&amp;lt;ul&amp;gt;)은 항목의 순서가 관련이 없는 경우에 사용됩니다. 정렬되지 않은 목록의 목록 항목은 글머리 기호로 표시됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬된 목록(&amp;lt;ol&amp;gt;)은 순차적 정보에 사용되며 브라우저에서 자동으로 열거됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설명 목록(&amp;lt;dl&amp;gt;)은 프로그래밍 방식으로 연결된 관련 용어 및 설명의 그룹입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;개별 목록 항목에는 단락, 제목, 양식 요소, 기타(중첩된) 목록 등 다양한 HTML 요소가 포함될 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬되지 않은 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬되지 않은 목록은 하나의 &amp;lt;ul&amp;gt; 요소와 여러 목록 항목(&amp;lt;li&amp;gt;) 요소로 구성됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.48.png&quot; data-origin-width=&quot;1037&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mHroH/btsmyWhOyzX/54iNaieZ57FvBQJe4Ce191/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mHroH/btsmyWhOyzX/54iNaieZ57FvBQJe4Ce191/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mHroH/btsmyWhOyzX/54iNaieZ57FvBQJe4Ce191/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmHroH%2FbtsmyWhOyzX%2F54iNaieZ57FvBQJe4Ce191%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1037&quot; height=&quot;290&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.48.png&quot; data-origin-width=&quot;1037&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206517452&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;Corn&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Tomatoes&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Beans&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Onions&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Garlic&amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬된 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정렬된 목록은 하나의 &amp;lt;ol&amp;gt; 요소와 여러 목록 항목(&amp;lt;li&amp;gt;) 요소로 구성됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.32.png&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kJuIU/btsmyt797Dc/du6QyAnEVVkH8x1RNK20Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kJuIU/btsmyt797Dc/du6QyAnEVVkH8x1RNK20Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kJuIU/btsmyt797Dc/du6QyAnEVVkH8x1RNK20Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkJuIU%2Fbtsmyt797Dc%2Fdu6QyAnEVVkH8x1RNK20Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1108&quot; height=&quot;289&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.32.png&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206554397&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;Cook beans for 45 minutes.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Cut vegetables in small cubes.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Saut&amp;eacute; onions and garlic.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Deglaze using the tomatoes.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Add corn and beans.&amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;중첩된 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 목록은 다른 목록에 중첩될 수 있습니다. 다음 예에서는 순서는 중요하지 않지만 재료를 사용하기 전에 준비 자체를 완료해야 합니다. 정보는 여전히 이해하기 쉬우며 보조 기술을 통해 사용자에게 단계 수를 쉽게 알려줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.12.png&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZX9qy/btsmse46965/ttTBWTT48DFpb41yLDfJJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZX9qy/btsmse46965/ttTBWTT48DFpb41yLDfJJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZX9qy/btsmse46965/ttTBWTT48DFpb41yLDfJJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZX9qy%2Fbtsmse46965%2FttTBWTT48DFpb41yLDfJJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1123&quot; height=&quot;326&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.01.12.png&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206594467&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;
      Prepare ingredients
      &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;Cook beans for 45 minutes.&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;Cut vegetables in small cubes.&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Saut&amp;eacute; onions and garlic.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Deglaze using the tomatoes.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Add corn and beans.&amp;lt;/li&amp;gt;
  &amp;hellip;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설명 목록&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설명 목록은 하나 이상의 용어 및 설명 그룹으로 구성됩니다. 각 그룹은 하나 이상의 용어(&amp;lt;dt&amp;gt; 요소의 내용)를 하나 이상의 설명(&amp;lt;dd&amp;gt; 요소의 내용)과 연결합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그룹화는 목록의 첫 번째 항목에서 시작되거나 &amp;lt;dt&amp;gt; 요소가 &amp;lt;dd&amp;gt; 요소 다음에 올 때마다 시작됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;예 1) 하나의 용어, 여러 설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서는 John과 Luke를 작성자(Authors)로, Frank를 편집자(Editor)로 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.51.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdfy3B/btsmsQXcFeP/ScYQrK0eOmm37bUmVHKUD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdfy3B/btsmsQXcFeP/ScYQrK0eOmm37bUmVHKUD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdfy3B/btsmsQXcFeP/ScYQrK0eOmm37bUmVHKUD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdfy3B%2FbtsmsQXcFeP%2FScYQrK0eOmm37bUmVHKUD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;207&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.51.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206635809&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dl&amp;gt;
  &amp;lt;dt&amp;gt;Authors&amp;lt;/dt&amp;gt;
  &amp;lt;dd&amp;gt;John&amp;lt;/dd&amp;gt;
  &amp;lt;dd&amp;gt;Luke&amp;lt;/dd&amp;gt;
  &amp;lt;dt&amp;gt;Editor&amp;lt;/dt&amp;gt;
  &amp;lt;dd&amp;gt;Frank&amp;lt;/dd&amp;gt;
&amp;lt;/dl&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;예 2) 여러 용어, 하나의 설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 예에서는 설명 목록을 사용하여 한 단어의 철자가 다른 두 가지를 정의합니다. 이러한 경우 정의된 용어를 마크업하려면 dfn 요소를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.31.png&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cs8g0P/btsmAMSL12z/7mnyGYSx7WnBuxBWFFHxvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cs8g0P/btsmAMSL12z/7mnyGYSx7WnBuxBWFFHxvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cs8g0P/btsmAMSL12z/7mnyGYSx7WnBuxBWFFHxvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcs8g0P%2FbtsmAMSL12z%2F7mnyGYSx7WnBuxBWFFHxvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1202&quot; height=&quot;164&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.31.png&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206666101&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dl&amp;gt;
   &amp;lt;dt lang=&quot;en-US&quot;&amp;gt;&amp;lt;dfn&amp;gt;color&amp;lt;/dfn&amp;gt;&amp;lt;/dt&amp;gt;
   &amp;lt;dt lang=&quot;en-GB&quot;&amp;gt;&amp;lt;dfn&amp;gt;colour&amp;lt;/dfn&amp;gt;&amp;lt;/dt&amp;gt;
   &amp;lt;dd&amp;gt;A sensation which (in humans) derives from the ability of the fine structure of the eye to distinguish three differently filtered analyses of a view.&amp;lt;/dd&amp;gt;
&amp;lt;/dl&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;예 3) 여러 용어, 여러 설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예에서 John과 Luke는 작성자(Authors)이면서 편집자(Editor)이기도 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.08.png&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tP7JP/btsmz0w53rL/HRKZ2HWiHY0MKfWvWehKVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tP7JP/btsmz0w53rL/HRKZ2HWiHY0MKfWvWehKVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tP7JP/btsmz0w53rL/HRKZ2HWiHY0MKfWvWehKVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtP7JP%2Fbtsmz0w53rL%2FHRKZ2HWiHY0MKfWvWehKVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;819&quot; height=&quot;161&quot; data-filename=&quot;스크린샷 2023-07-05 오후 4.00.08.png&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206698795&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dl&amp;gt;
  &amp;lt;dt&amp;gt;Authors&amp;lt;/dt&amp;gt;
  &amp;lt;dt&amp;gt;Editors&amp;lt;/dt&amp;gt;
  &amp;lt;dd&amp;gt;John&amp;lt;/dd&amp;gt;
  &amp;lt;dd&amp;gt;Luke&amp;lt;/dd&amp;gt;
&amp;lt;/dl&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인용문&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인용문을 식별하면 콘텐츠의 출처가 다른 작성자임을 명확히 알 수 있습니다. 인용문은 인라인 또는 텍스트 블록으로 마크업할 수 있습니다. 보조 기술을 통해 인용문의 시작과 끝을 사용자에게 전달하여 오해를 피할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;예 1) 인용문&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;더 길고 복잡한 따옴표는 &amp;lt;blockquote&amp;gt; 요소를 사용합니다. 단락, 제목 및 기타 텍스트 구조 요소를 포함할 수 있습니다. 이러한 요소는 인용된 문서의 구조를 반영해야 합니다. &amp;lt;cite&amp;gt; 요소는 인용문의 출처를 참조하는 데 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 3.59.28.png&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RZ35D/btsmtNTUeJX/hgMfrG41KgkQdmyuWUNjlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RZ35D/btsmtNTUeJX/hgMfrG41KgkQdmyuWUNjlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RZ35D/btsmtNTUeJX/hgMfrG41KgkQdmyuWUNjlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRZ35D%2FbtsmtNTUeJX%2FhgMfrG41KgkQdmyuWUNjlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1133&quot; height=&quot;187&quot; data-filename=&quot;스크린샷 2023-07-05 오후 3.59.28.png&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206759625&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
  The following is an excerpt from the &amp;lt;cite&amp;gt;The Story of my Life&amp;lt;/cite&amp;gt; 
  by Helen Keller
&amp;lt;/p&amp;gt;
&amp;lt;blockquote&amp;gt;
  &amp;lt;p&amp;gt;
    Even in the days before my teacher came, 
    I used to feel along the square stiff boxwood hedges, 
    and, guided by the sense of smell, would find the first violets and lilies. 
    There, too, after a fit of temper, I went to find comfort and to hide my hot
    face in the cool leaves and grass.
  &amp;lt;/p&amp;gt;
&amp;lt;/blockquote&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;예 2) 인라인 인용문&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 다른 문장에 포함되는 짧은 인용문의 경우 &amp;lt;q&amp;gt; 요소를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-07-05 오후 3.59.44.png&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7ogjq/btsmwguu2Kc/wK2CqTrqfbkmkNGJOr4abK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7ogjq/btsmwguu2Kc/wK2CqTrqfbkmkNGJOr4abK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7ogjq/btsmwguu2Kc/wK2CqTrqfbkmkNGJOr4abK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7ogjq%2Fbtsmwguu2Kc%2FwK2CqTrqfbkmkNGJOr4abK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1201&quot; height=&quot;87&quot; data-filename=&quot;스크린샷 2023-07-05 오후 3.59.44.png&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1686206825367&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;Helen Keller said, &amp;lt;q&amp;gt;Self-pity is our worst enemy and if we yield to it, 
we can never do anything good in the world.&amp;lt;/q&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;figure&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;figure는 페이지의 주요 콘텐츠에서 추가 정보가 설정된 블록으로, 때로는 주요 텍스트에서 참조되기도 합니다. 일반적으로 목록, 이미지, 표를 포함하지만 다른 콘텐츠도 포함할 수 있습니다. 예를 들어 연례 보고서에서 제품의 판매량이 포함된 다이어그램을 참조할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 그림은 &amp;lt;figure&amp;gt; 요소로 둘러싸여 있으며 중첩된 &amp;lt;figcaption&amp;gt; 요소를 사용하여 레이블이 지정됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686206866398&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;The sales volume of our SpaceBear product was steadily the first three 
quarters but had a huge success in quarter four with the introduction of 
SuperBear in time for the holiday season. See graphic G3 for details.&amp;lt;/p&amp;gt;

&amp;lt;figure role=&quot;group&quot; aria-labelledby=&quot;fig-t3-capt&quot;&amp;gt;
  &amp;lt;figcaption id=&quot;fig-t3-capt&quot;&amp;gt;G3: SpaceBear sales volume&amp;lt;/figcaption&amp;gt;
  &amp;lt;img src=&quot;&amp;hellip;&quot;
       alt=&quot;SpaceBear sales diagram, showing the huge success in Q4&quot;
       longdesc=&quot;&amp;hellip;&quot;&amp;gt;
  &amp;lt;a href=&quot;&amp;hellip;&quot;&amp;gt;Long Description&amp;lt;/a&amp;gt;
&amp;lt;/figure&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;br /&gt;이 글을 작성하는 현재, 보조 기술에 일관된 방식으로 정보를 제공하기 위해 WAI-ARIA 속성 role=&quot;group&quot; 및 aria-labelledby가 사용되고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;br /&gt;다이어그램을 마크업하는 방법에 대한 자세한 내용은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images#%EB%B3%B5%EC%9E%A1%ED%95%9C%20%EC%9D%B4%EB%AF%B8%EC%A7%80-1&quot;&gt;복잡한 이미지&lt;/a&gt;를 참조하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 및 일러스트레이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지와 일러스트레이션은 많은 사용자의 시각적 참여를 유도하는 데 유용합니다. 또한 읽기 장애가 있는 사람들을 위해 텍스트를 명확하게 설명할 수도 있습니다. 이미지 또는 일러스트레이션을 사용하는 경우에는 적절한 대체 텍스트를 추가해야 합니다. 대체 텍스트에 대한 지침은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;이미지 튜토리얼&lt;/a&gt;을 참조하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터 테이블은 모든 사람에게 테이블의 구조를 전달할 수 있도록 데이터를 표시하는 유용한 방법을 제공합니다. 적절한 테이블 레이아웃을 사용하면 사람들이 그리드를 보지 않고도 의미 있는 데이터 관계를 이해할 수 있습니다. 자세한 내용은 &lt;a href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;테이블 자습서&lt;/a&gt;를 참조하십시오.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 글은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/4</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures#entry4comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:16:48 +0900</pubDate>
    </item>
    <item>
      <title>[번역] 웹접근성 튜토리얼 - 1. 개요</title>
      <link>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dMEzbk/btskRvtcohG/x4QdGPuh1fn5D7VLuF2nE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dMEzbk/btskRvtcohG/x4QdGPuh1fn5D7VLuF2nE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dMEzbk/btskRvtcohG/x4QdGPuh1fn5D7VLuF2nE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMEzbk%2FbtskRvtcohG%2Fx4QdGPuh1fn5D7VLuF2nE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;336&quot; data-filename=&quot;스크린샷 2023-06-22 오후 12.24.11.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;이 튜토리얼 모음에서는 장애인이 액세스할 수 있고 모든 사람에게 더 나은 사용자 경험을 제공하는 웹 콘텐츠를 개발하는 방법을 보여 줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 튜토리얼은 다음과 같은 다양한 사람들이 사용할 수 있도록 설계되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;웹 개발자&lt;/b&gt;는 여러 가지 일반적인 코딩 문제에 대한 지침과 상용구 솔루션을 찾을 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;웹 디자이너&lt;/b&gt;는 포괄적인 디자인이 내장된 웹 페이지 구성 요소를 만드는 방법을 배울 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;웹 강사&lt;/b&gt;는 사람들에게 접근 가능한 웹 디자인 및 개발에 대해 가르칠 수 있는 예제를 찾을 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;콘텐츠 작성자&lt;/b&gt;는 접근 가능한 방식으로 콘텐츠를 준비하기 위한 개념과 기술을 배웁니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;프로젝트 관리자&lt;/b&gt;는 프로젝트에 접근성을 통합하는 방법을 이해할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;social-sharing-default.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV2IWH/btskA4OPC3N/yUbrAYsLrCxaASKgCR9aNK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV2IWH/btskA4OPC3N/yUbrAYsLrCxaASKgCR9aNK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV2IWH/btskA4OPC3N/yUbrAYsLrCxaASKgCR9aNK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV2IWH%2FbtskA4OPC3N%2FyUbrAYsLrCxaASKgCR9aNK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-filename=&quot;social-sharing-default.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 튜토리얼은 웹 프로젝트의 일반적인 작업을 기반으로 다양한 접근성 주제를 다룹니다. 예를 들어 HTML4, HTML5, CSS3, WAI-ARIA, MathML, SVG 등 다양한 웹 기술을 사용하여 접근 가능한 이미지와 표를 제공하는 방법을 보여 줍니다. 튜토리얼에서 설명하는 개념과 기법은 다른 형식에도 적용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;html5-badge-h-css3-graphics-multimedia-semantics.png&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmbHLF/btskizDsFLL/w2BtcGFFMBkHOpVoeeAVO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmbHLF/btskizDsFLL/w2BtcGFFMBkHOpVoeeAVO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmbHLF/btskizDsFLL/w2BtcGFFMBkHOpVoeeAVO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmbHLF%2FbtskizDsFLL%2Fw2BtcGFFMBkHOpVoeeAVO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;229&quot; height=&quot;64&quot; data-filename=&quot;html5-badge-h-css3-graphics-multimedia-semantics.png&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 저작 도구(콘텐츠 관리 시스템(CMS), WYSIWYG 편집기, 워드 프로세서 등)를 사용하면 이 자습서에서 설명하는 대로 액세스할 수 있는 콘텐츠를 만드는 데 도움이 될 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;WCAG와의 관계&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 튜토리얼은 다양한 상황에서 접근성을 구현하기 위한 모범 사례 지침을 제공합니다. 이 튜토리얼은 다양한 적합성 수준에서 WCAG 2 성공 기준과 기술을 결합합니다. 각 튜토리얼 페이지에는 해당 페이지에서 사용된 구체적인 성공 기준과 기법이 나열되어 있습니다. 규범적인 &lt;a href=&quot;https://www.w3.org/TR/WCAG20/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WCAG 2.0&lt;/a&gt; 및 &lt;a href=&quot;https://www.w3.org/TR/WCAG21/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WCAG 2.1&lt;/a&gt; 표준과 그 지원 자료에 대한 보다 포괄적인 내용은 &lt;a href=&quot;https://www.w3.org/WAI/WCAG21/quickref/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WCAG 2를 충족하는 방법: 사용자 지정 가능한 빠른 참조&lt;/a&gt;에서 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;묶음 글 목록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[A11Y] - 웹접근성 튜토리얼 - 1. 개요&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-page-structures&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 2. 페이지 구조&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-menus&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 3. 메뉴(네비게이션)&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-images&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 4. 이미지&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-table&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 5. 테이블&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-form&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 6. 폼&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://htmlcss-docs.tistory.com/entry/a11y-tutorials-carousels&quot;&gt;[A11Y] - 웹접근성 튜토리얼 - 7. 캐러셀&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;이 글은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #0070d1; text-align: start;&quot; href=&quot;https://www.w3.org/WAI/tutorials/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;W3C의 웹접근성 튜토리얼&lt;/a&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;을 번역한 글입니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>A11Y</category>
      <category>A11Y</category>
      <category>W3C</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/3</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/a11y-tutorials-intro#entry3comment</comments>
      <pubDate>Thu, 6 Jul 2023 00:16:29 +0900</pubDate>
    </item>
    <item>
      <title>최신 CSS 스펙 소개 -  WWDC23</title>
      <link>https://htmlcss-docs.tistory.com/entry/new-css-features-in-wwdc23</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.21.08.png&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dm0SkV/btsjbqNdZdF/4miEENu7Zk6Ov5K8urQ5k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dm0SkV/btsjbqNdZdF/4miEENu7Zk6Ov5K8urQ5k0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dm0SkV/btsjbqNdZdF/4miEENu7Zk6Ov5K8urQ5k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdm0SkV%2FbtsjbqNdZdF%2F4miEENu7Zk6Ov5K8urQ5k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;906&quot; height=&quot;477&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.21.08.png&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;WWDC23에서 발표된 사파리 브라우저에서 사용할 수 있는 CSS 최신 사항 소개에 대한 영상 내용을 간단히 요약해 보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원본 영상 링크 : &lt;a href=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.apple.com/videos/play/wwdc2023/10121&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;크게 4개의 범위로 분류하여 소개했네요.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이아웃 개선 사항&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다양한 색상 사용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유용한 선택자 추가&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;타이포그라피 개선 사항들&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;이번에 소개한 CSS 최신 사항들이 아직 모든 브라우저에서 지원하지 않아요. &lt;br /&gt;직접 확인 해보고 싶다면,&amp;nbsp;&lt;a href=&quot;https://developer.apple.com/safari/download/&quot;&gt;Safari Technology Preview&lt;/a&gt;를 설치하시면 됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;1. 레이아웃 개선 사항&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Masonry 레이아웃&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가장 먼저 소개된 내용은 grid 레이아웃을 적용할 때, 흔히 핀터레스트 UI라고 부르는 메이슨리(Masonry) UI를 적용할 수 있는 속성입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 11.09.53.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjbtpA/btsjH2xRnst/kMMFbondOwimdEsv19Lbmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjbtpA/btsjH2xRnst/kMMFbondOwimdEsv19Lbmk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjbtpA/btsjH2xRnst/kMMFbondOwimdEsv19Lbmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjbtpA%2FbtsjH2xRnst%2FkMMFbondOwimdEsv19Lbmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;466&quot; data-filename=&quot;스크린샷 2023-06-12 오후 11.09.53.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;영상에서는 grid-template-rows 속성에 masonry 라는 값을 넣어 쉽게 메이슨리 UI를 만들 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.38.08.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzZmYL/btsjKSuDISb/IllgsNndZfJtmp9sGXmXR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzZmYL/btsjKSuDISb/IllgsNndZfJtmp9sGXmXR0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzZmYL/btsjKSuDISb/IllgsNndZfJtmp9sGXmXR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzZmYL%2FbtsjKSuDISb%2FIllgsNndZfJtmp9sGXmXR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;835&quot; height=&quot;479&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.38.08.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 속성 값은 아직 최근 버전의 브라우저들이 지원하지 않기 때문에, 동일한 형태의 UI를 만들려면, CSS multi-column&amp;nbsp; 레이아웃이나 자바스크립트의 추가 적용을 통하여 구현 해야합니다. 간단하게 CSS 속성만으로 구현할 수 있게 되면 최적화 측면에서도 좋아지겠네요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.39.14.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhmnvs/btsjHcncCqd/1vxRXF2ZWWOLhLK6X2eAuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhmnvs/btsjHcncCqd/1vxRXF2ZWWOLhLK6X2eAuK/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhmnvs/btsjHcncCqd/1vxRXF2ZWWOLhLK6X2eAuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhmnvs%2FbtsjHcncCqd%2F1vxRXF2ZWWOLhLK6X2eAuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;829&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.39.14.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.39.04.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ec7L2/btsjGmqjwWp/rGGITvKwpItvE5E3oTY3C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ec7L2/btsjGmqjwWp/rGGITvKwpItvE5E3oTY3C1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ec7L2/btsjGmqjwWp/rGGITvKwpItvE5E3oTY3C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEc7L2%2FbtsjGmqjwWp%2FrGGITvKwpItvE5E3oTY3C1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;471&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.39.04.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;471&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;grid-template-columns 속성의 값을 조정하여 다양한 레이아웃 구현도 가능해지는군요!~&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아직은 &lt;a style=&quot;color: #0070d1; text-align: start;&quot; href=&quot;https://developer.apple.com/safari/download/&quot;&gt;Safari Technology Preview&lt;/a&gt; 버전과 layout.css.grid-template-masonry-value.enabled 속성을 true로 설정한 파이어폭스 에서만 확인 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686579711637&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Native CSS Masonry Layout In CSS Grid &amp;mdash; Smashing Magazine&quot; data-og-description=&quot;There is now a specification for native CSS masonry layout, as part of the Grid Layout spec. In this article, Rachel Andrew explains how it works with the help of a couple of demos you can try out in Firefox Nightly.&quot; data-og-host=&quot;www.smashingmagazine.com&quot; data-og-source-url=&quot;https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/&quot; data-og-url=&quot;https://www.smashingmagazine.com/2020/11/native-css-masonry-layout-css-grid/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/H8TwZ/hySYAfiG5g/kjnO4bu4dHu1xznLRUyko1/img.png?width=1201&amp;amp;height=631&amp;amp;face=848_221_1035_425,https://scrap.kakaocdn.net/dn/cnvhwE/hySYDXo9FW/08lOmTEMOfepj4wGjnoWmk/img.png?width=1201&amp;amp;height=631&amp;amp;face=848_221_1035_425,https://scrap.kakaocdn.net/dn/rnxni/hySYHMfNVA/yJnsDBqalE6DiyCKr0u880/img.jpg?width=400&amp;amp;height=279&amp;amp;face=258_93_301_136&quot;&gt;&lt;a href=&quot;https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/H8TwZ/hySYAfiG5g/kjnO4bu4dHu1xznLRUyko1/img.png?width=1201&amp;amp;height=631&amp;amp;face=848_221_1035_425,https://scrap.kakaocdn.net/dn/cnvhwE/hySYDXo9FW/08lOmTEMOfepj4wGjnoWmk/img.png?width=1201&amp;amp;height=631&amp;amp;face=848_221_1035_425,https://scrap.kakaocdn.net/dn/rnxni/hySYHMfNVA/yJnsDBqalE6DiyCKr0u880/img.jpg?width=400&amp;amp;height=279&amp;amp;face=258_93_301_136');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Native CSS Masonry Layout In CSS Grid &amp;mdash; Smashing Magazine&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;There is now a specification for native CSS masonry layout, as part of the Grid Layout spec. In this article, Rachel Andrew explains how it works with the help of a couple of demos you can try out in Firefox Nightly.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.smashingmagazine.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Margin trim&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음으로 소개하는 속성은 margin-trim 속성입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-12 오후 11.09.04.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yL8mr/btsjGI00oK5/uSRmSK5m7O2l125kLUJu31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yL8mr/btsjGI00oK5/uSRmSK5m7O2l125kLUJu31/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yL8mr/btsjGI00oK5/uSRmSK5m7O2l125kLUJu31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyL8mr%2FbtsjGI00oK5%2FuSRmSK5m7O2l125kLUJu31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-12 오후 11.09.04.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사파리 16.4 버전부터 지원을 하고 있는 속성으로, 부모 요소에서 자식 요소가 가지고 있는 여백을 잘라낼 수 있는 속성입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.41.53.png&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blkSXK/btsjFXxD7Gh/8tukqIaqYAoBeLThC9PeI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blkSXK/btsjFXxD7Gh/8tukqIaqYAoBeLThC9PeI1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blkSXK/btsjFXxD7Gh/8tukqIaqYAoBeLThC9PeI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblkSXK%2FbtsjFXxD7Gh%2F8tukqIaqYAoBeLThC9PeI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;838&quot; height=&quot;483&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.41.53.png&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 예 처럼 자식 요소인 h2와 p 요소에 상하 마진이 적용되어 있을 경우, UI에 따라 의도치 않은 여백을 없애기 위해 추가로 스타일을 지정해줘야 하는 경우가 있는데, 이런 경우 유용하게 사용될 수 있겠네요.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;부모인 .card 요소에서 margin-trim 속성에 block 값을 적용하면 예시와 같이 부모 요소와 인접한 자식 요소의 여백이 사라지게 됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;수퍼 쿨 울트라 유용한 속성입니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686579638248&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;margin-trim - CSS: Cascading Style Sheets | MDN&quot; data-og-description=&quot;The margin-trim property allows the container to trim the margins of its children where they adjoin the container's edges.&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&quot; data-og-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/boRyrm/hySW52htq4/KiHKhDSdg4sKstMXHumfFK/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/margin-trim&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/boRyrm/hySW52htq4/KiHKhDSdg4sKstMXHumfFK/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;margin-trim - CSS: Cascading Style Sheets | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The margin-trim property allows the container to trim the margins of its children where they adjoin the container's edges.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 다양한 색상 사용&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://www.w3.org/TR/css-color-4/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CSS Color Module Level 4&lt;/a&gt; 스펙이 2022년에 후보 권고 사항(Candidate Recommendation, CR)이 되었습니다. 이 스팩안에 CSS를 이용하여 색상을 정의하는 14가지 방법이 새롭게 추가되었습니다.&lt;br /&gt;&lt;br /&gt;최신 디스플레이는 실제로 사람의 눈에 보이는 모든 색상을 표시할 수 없습니다. 현재 사용하고 있는 색상 영역의 표준은 sRGB입니다. 이는 마이크로소프트와 HP가 협력하여 만든 색상 영역입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;DCI-P3는 디지털 영사기의 색상 영역으로 사용하기 위해 정의한 색 영역인데, &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;sRBG보다 약 25% 정도 더 많은 색상을 표현할 수 있습니다. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애플은 DCI-P3를 바탕으로 한 Display P3라고 하는 규격을 사용하고 있습니다.&lt;br /&gt;애플이 차세대 프로파일로 적극 밀고 있는 색 영역으로 아이폰 7 이후로 기본 사진앱으로 촬영한 모든 사진들은&amp;nbsp; P3 색 영역을 기본으로 지정하고 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.43.15.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfzOld/btsj3mQWsPJ/r04SEHeKMeL2XpwZ3zxMPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfzOld/btsj3mQWsPJ/r04SEHeKMeL2XpwZ3zxMPk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfzOld/btsj3mQWsPJ/r04SEHeKMeL2XpwZ3zxMPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfzOld%2Fbtsj3mQWsPJ%2Fr04SEHeKMeL2XpwZ3zxMPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.43.15.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;색상 조합을 위해 사용하는 다양한 방법에 대해서 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기존에 사용하던 hexa 코드, RGB(), HSL()로는 P3 범위의 색상을 표현할 수 없습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;color-mix()와&amp;nbsp; calc()를 조합하여 색상을 만들고, LCH, OKLCH,&amp;nbsp; LAB, OKLAB를 이용해 다양한 색상 표현 방법을 보여줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.47.56.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuzUZm/btsj5v8b1At/o6kQqbUhnMXGbNOxbaqEVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuzUZm/btsj5v8b1At/o6kQqbUhnMXGbNOxbaqEVk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuzUZm/btsj5v8b1At/o6kQqbUhnMXGbNOxbaqEVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuzUZm%2Fbtsj5v8b1At%2Fo6kQqbUhnMXGbNOxbaqEVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;467&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.47.56.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.49.13.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EuZhM/btsj6ljncN0/TNzvH2I4Luk31QQ1pyYPH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EuZhM/btsj6ljncN0/TNzvH2I4Luk31QQ1pyYPH0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EuZhM/btsj6ljncN0/TNzvH2I4Luk31QQ1pyYPH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEuZhM%2Fbtsj6ljncN0%2FTNzvH2I4Luk31QQ1pyYPH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;829&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.49.13.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;색상과 색상 조합 관련해서 좀 더 자세히 알아봐야 겠네요. 새로운게 많이 나온 것 같습니다. ㅎㅎ&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 유용한 선택자 추가&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;:user-valid , :user-invalid&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.53.19.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TRm6X/btsj5u2x2hT/BElrnFfZyxzgT6r6PiI3D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TRm6X/btsj5u2x2hT/BElrnFfZyxzgT6r6PiI3D1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TRm6X/btsj5u2x2hT/BElrnFfZyxzgT6r6PiI3D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTRm6X%2Fbtsj5u2x2hT%2FBElrnFfZyxzgT6r6PiI3D1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;830&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.53.19.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;input 요소에 입력되는 값의 유효성 여부를 표현할 수 있는 선택자입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기존에 있던  :valid, 와 :invalid는 input 요소에 타이핑이 될 때마다 유효성 여부를 판단하는데 이런 단점을 보완한 것 같네요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.53.43.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNtKaH/btsj6PxM3PL/GghbzLHWsbFoRMWkN90paK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNtKaH/btsj6PxM3PL/GghbzLHWsbFoRMWkN90paK/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNtKaH/btsj6PxM3PL/GghbzLHWsbFoRMWkN90paK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNtKaH%2Fbtsj6PxM3PL%2FGghbzLHWsbFoRMWkN90paK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.53.43.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.19.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO8l9D/btsj6AtXHL2/24eClIVBEWDsJ5kOWFzBW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO8l9D/btsj6AtXHL2/24eClIVBEWDsJ5kOWFzBW0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO8l9D/btsj6AtXHL2/24eClIVBEWDsJ5kOWFzBW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO8l9D%2Fbtsj6AtXHL2%2F24eClIVBEWDsJ5kOWFzBW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.19.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DQtwG/btsj5QEhsJ2/4aR1xp34tRWfVaFEvXGNd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DQtwG/btsj5QEhsJ2/4aR1xp34tRWfVaFEvXGNd1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DQtwG/btsj5QEhsJ2/4aR1xp34tRWfVaFEvXGNd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDQtwG%2Fbtsj5QEhsJ2%2F4aR1xp34tRWfVaFEvXGNd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;467&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686815476294&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;:user-valid - CSS: Cascading Style Sheets | MDN&quot; data-og-description=&quot;The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&quot; data-og-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZQZHM/hyS0n8TDte/vCmsPqmgONlMNywuxIAvTK/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-valid&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZQZHM/hyS0n8TDte/vCmsPqmgONlMNywuxIAvTK/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;:user-valid - CSS: Cascading Style Sheets | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686815521492&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;:user-invalid - CSS: Cascading Style Sheets | MDN&quot; data-og-description=&quot;The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.&quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot; data-og-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eLCZR/hyS0gIGkIx/ql5hA9vKditLAk2B4Q9Uu0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eLCZR/hyS0gIGkIx/ql5hA9vKditLAk2B4Q9Uu0/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;:user-invalid - CSS: Cascading Style Sheets | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;:has()&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.53.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDFHcW/btsj04QK7Hg/8JTJyI2xSrk59EjA2yR3ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDFHcW/btsj04QK7Hg/8JTJyI2xSrk59EjA2yR3ZK/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDFHcW/btsj04QK7Hg/8JTJyI2xSrk59EjA2yR3ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDFHcW%2Fbtsj04QK7Hg%2F8JTJyI2xSrk59EjA2yR3ZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;472&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.54.53.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;:has()선택자는 다양한 선택자를 조합하여 상황에 맞는 스타일을 선언할 수 있습니다.&lt;br /&gt;아래 예처럼 인코딩 관련 값이 있을 때 스타일을 지정한다던지, 오디오, 비디오 관련 속성들이 있을 경우 스타일을 제저할 수 있는 등 다양하게 활용할 수 있겠네요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 4.58.55.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wOlMB/btsj7LPvN0r/f929qYiUctA8fJoD5PwLwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wOlMB/btsj7LPvN0r/f929qYiUctA8fJoD5PwLwK/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wOlMB/btsj7LPvN0r/f929qYiUctA8fJoD5PwLwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwOlMB%2Fbtsj7LPvN0r%2Ff929qYiUctA8fJoD5PwLwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-15 오후 4.58.55.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;4. 타이포그래피 개선 사항&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;텍스트와 폰트 관련 사항들도 꽤 디테일한 조정이 가능하도록 개선 될 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;line-height unit, lh, rlh&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.56.42.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0IhrQ/btsj6O6Smb2/g13RyBAy8hxZCC10pa1vf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0IhrQ/btsj6O6Smb2/g13RyBAy8hxZCC10pa1vf1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0IhrQ/btsj6O6Smb2/g13RyBAy8hxZCC10pa1vf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0IhrQ%2Fbtsj6O6Smb2%2Fg13RyBAy8hxZCC10pa1vf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.56.42.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CSS에는 길이를 정의할 때 사용하는 여러 종류의 단위가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;svh와 lvh 같이 뷰포트와 관련된 단위도 있고, 콘테이너 크기에 따라 결정되는 cqb와 cqi도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.57.00.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3MfIG/btsj6kMjpJY/BCc3zP3QD7GzS0p8njmLtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3MfIG/btsj6kMjpJY/BCc3zP3QD7GzS0p8njmLtk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3MfIG/btsj6kMjpJY/BCc3zP3QD7GzS0p8njmLtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3MfIG%2Fbtsj6kMjpJY%2FBCc3zP3QD7GzS0p8njmLtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.57.00.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;타이포그라피 크기와 관련된 단위도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1ex는 폰트의 x-height와 같고, 1ch는 0이라는 문자의 가로 크기와 같고, 1ic는 한문과 같은 표문자의 가로 크기와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 단위들은 여러 브라우저에서 예전부터 지원되어 왔습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.57.32.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BuCCR/btsj5xMbkE9/e3SSZU1n9Dnvy20TqwDc0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BuCCR/btsj5xMbkE9/e3SSZU1n9Dnvy20TqwDc0k/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BuCCR/btsj5xMbkE9/e3SSZU1n9Dnvy20TqwDc0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBuCCR%2Fbtsj5xMbkE9%2Fe3SSZU1n9Dnvy20TqwDc0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;830&quot; height=&quot;471&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.57.32.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;471&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;추가로 타이포그라피 크기와 관련된 새로운 단위가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;line-height 단위를 측정하는 lh와 rlh입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.58.41.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE3Itw/btsj7Kp8XnE/wJNKlntNg10gvnpcVSkujk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE3Itw/btsj7Kp8XnE/wJNKlntNg10gvnpcVSkujk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE3Itw/btsj7Kp8XnE/wJNKlntNg10gvnpcVSkujk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE3Itw%2Fbtsj7Kp8XnE%2FwJNKlntNg10gvnpcVSkujk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.58.41.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;최 상위 요소인 html에 line-height: 1.4 로 지정하고, section의 padding을 2rlh로 지정합니다. 그리고 제목인 h1과 문단 p 요소에 margin-block 값을 1rlh로 지정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이렇게 지정하면 루트(root) 요소인 html의 line-height를 기준으로 자식 요소의 line-height가 결정됩니다. 콘테이너 역할을 하는 section의&amp;nbsp; 상하 padding 값이 html의 line-height의 2배 값이 적용(2rlh)되고, 자식 요소로 있는 h1, p 요소는 1배 값(1rlh)이 적용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;디자인 의도나 문단 간격을 맞추기 위해 헤드라인과 문단 요소에 별도의 padding을 적용하거나&amp;nbsp; 인위적인 간격을 적용할 필요가 없어집니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.59.13.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yoisl/btsj3ovljC2/utdIxldszgpwXYlRNirsFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yoisl/btsj3ovljC2/utdIxldszgpwXYlRNirsFK/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yoisl/btsj3ovljC2/utdIxldszgpwXYlRNirsFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyoisl%2Fbtsj3ovljC2%2FutdIxldszgpwXYlRNirsFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;471&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.59.13.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;471&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;font-size-adjust&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;동일한 line-height 값을 가지고 있더라도 폰트 서체 별로 위치나 높이가 다르게 보이던 것을 font-size-adjust 속성을 이용하여 조정할 수 있게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.59.42.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y8BSk/btsj5uPaBsI/tTrbVLui6X7UWlKSFqfr30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y8BSk/btsj5uPaBsI/tTrbVLui6X7UWlKSFqfr30/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y8BSk/btsj5uPaBsI/tTrbVLui6X7UWlKSFqfr30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY8BSk%2Fbtsj5uPaBsI%2FtTrbVLui6X7UWlKSFqfr30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-09 오전 12.59.42.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;웹페이지의 폰트를 지정할 때, font-family 속성에 우선적으로 적용될 서체를 순서대로 지정합니다. 일반적으로 하나의 폰트를 지정하지 않고 사용자의 시스템에 해당 폰트가 없을 경우를 대비하여 여러 폰트를 적용 순서대로 지정합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.26.10.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PD1aF/btsj3o9S1a6/AnkAzUY3sqYFR6RFEr8iKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PD1aF/btsj3o9S1a6/AnkAzUY3sqYFR6RFEr8iKk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PD1aF/btsj3o9S1a6/AnkAzUY3sqYFR6RFEr8iKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPD1aF%2Fbtsj3o9S1a6%2FAnkAzUY3sqYFR6RFEr8iKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;471&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.26.10.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;471&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그런데 이렇게 폰트를 적용했을 때, 한 페이지에서 여러 서체가 사용되는 경우, 문단 안에서 폰트 크기나 위치가 달라지는 경우가 생깁니다. 비록 같은 크기의 font-size를 지정하였더라도 폰트마다 x-height의 차이가 존재하기 때문입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.26.43.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U2Kxf/btsj6ClKYGU/CvsWwvoMkXVKMYl4Bchic0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U2Kxf/btsj6ClKYGU/CvsWwvoMkXVKMYl4Bchic0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U2Kxf/btsj6ClKYGU/CvsWwvoMkXVKMYl4Bchic0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU2Kxf%2Fbtsj6ClKYGU%2FCvsWwvoMkXVKMYl4Bchic0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;835&quot; height=&quot;475&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.26.43.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;475&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.27.15.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IwnxK/btsj02eVMrO/87DBoK5WKsse7fS405QSR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IwnxK/btsj02eVMrO/87DBoK5WKsse7fS405QSR0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IwnxK/btsj02eVMrO/87DBoK5WKsse7fS405QSR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIwnxK%2Fbtsj02eVMrO%2F87DBoK5WKsse7fS405QSR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;467&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.27.15.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;의도와 다르게 크기가 작아 보이는 서체의 크기만 상대값으로 조정(font-size: 120%)해도 두 서체 간의 간격은 크게 달라지지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이를 보완하기 위해&amp;nbsp; 부모요소에 font-size-adjust: 0.47 을 추가하면, 두 서체의 높이가 자연스럽게 비슷하게 적용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.11.51.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3G8b4/btsj6jzQXOq/KOLT7iPtDtMYxzSKUVKMRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3G8b4/btsj6jzQXOq/KOLT7iPtDtMYxzSKUVKMRk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3G8b4/btsj6jzQXOq/KOLT7iPtDtMYxzSKUVKMRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3G8b4%2Fbtsj6jzQXOq%2FKOLT7iPtDtMYxzSKUVKMRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;829&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.11.51.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저 0.47이라는 값은 어떻게 나온 숫자일까요?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;해당 폰트의 font-size와 x-height 의 비율이라고 이해하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;쉽게 이해하도록 말한다면, 폰트의 x-height를&amp;nbsp; font-size의 절반 정도(47%) 크기로 맞추라는 의미입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 font-size-adjust 속성은 사파리 16.4부터 지원됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.46.40.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQqfMl/btsj8AOfxEt/IuBhFtFPVOVsST6yQgil1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQqfMl/btsj8AOfxEt/IuBhFtFPVOVsST6yQgil1k/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQqfMl/btsj8AOfxEt/IuBhFtFPVOVsST6yQgil1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQqfMl%2Fbtsj8AOfxEt%2FIuBhFtFPVOVsST6yQgil1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-15 오후 11.46.40.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저 0.47 이라는 숫자는 아마 일반적으로 적용될 수 있는 비율의 값일 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 사파리 17 버전부터는 from-font 라는 값이 지원되어, 따로 값을 넣어주지 않아도 브라우저가 알아서 font-size-adjust값을 조정해줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFWymM/btsj7cG6A8X/2TNkKykxX37JLNcXxsWJV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFWymM/btsj7cG6A8X/2TNkKykxX37JLNcXxsWJV0/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFWymM/btsj7cG6A8X/2TNkKykxX37JLNcXxsWJV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFWymM%2Fbtsj7cG6A8X%2F2TNkKykxX37JLNcXxsWJV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;혹은 폰트의 값일 미세하게 조정하고 싶을 때는 two-value 문법을 적용할 수도 있게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.41.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LqlTq/btsj6PrMare/WU5Y8nlxJXaArUNp2lOgk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LqlTq/btsj6PrMare/WU5Y8nlxJXaArUNp2lOgk1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LqlTq/btsj6PrMare/WU5Y8nlxJXaArUNp2lOgk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLqlTq%2Fbtsj6PrMare%2FWU5Y8nlxJXaArUNp2lOgk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;472&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.41.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;두 개의 값을 이용할 때는 ex-height 뿐 아니라,&amp;nbsp; cap-height, ch-width, ic-width, ic-height와 같은 값을 기준으로도 세부적으로 조정할 수 있게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.56.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pxJSj/btsj73pAWmt/uFWJx25GmNJtVs0BsmDgXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pxJSj/btsj73pAWmt/uFWJx25GmNJtVs0BsmDgXk/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pxJSj/btsj73pAWmt/uFWJx25GmNJtVs0BsmDgXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpxJSj%2Fbtsj73pAWmt%2FuFWJx25GmNJtVs0BsmDgXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;829&quot; height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.14.56.png&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Text-box trim&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위에 나왔던 margin-trim과 유사하게 이 속성은 텍스트 박스에서 원하지 않는 여백을 제거해 줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로필 이미지와 이름이 함께 노출되는 UI에서 스타일을 수직 중앙으로 정렬해도 텍스트가 영역의 수직 중앙에서 조금 아래쪽으로 내려가 보입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lpTc2/btsj9CE3Eg8/nk66S4cC4TcpVakTmCZg1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lpTc2/btsj9CE3Eg8/nk66S4cC4TcpVakTmCZg1K/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;468&quot; data-filename=&quot;스크린샷 2023-06-16 오전 12.11.59.png&quot; style=&quot;width: 49.5539%; margin-right: 10px;&quot; data-widthpercent=&quot;50.14&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lpTc2/btsj9CE3Eg8/nk66S4cC4TcpVakTmCZg1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlpTc2%2Fbtsj9CE3Eg8%2Fnk66S4cC4TcpVakTmCZg1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8f2zG/btsj7b9e7Qa/Gkw2W4BB0dDbstwSEYtFx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8f2zG/btsj7b9e7Qa/Gkw2W4BB0dDbstwSEYtFx0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;470&quot; data-filename=&quot;스크린샷 2023-06-16 오전 12.12.19.png&quot; style=&quot;width: 49.2833%;&quot; data-widthpercent=&quot;49.86&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8f2zG/btsj7b9e7Qa/Gkw2W4BB0dDbstwSEYtFx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8f2zG%2Fbtsj7b9e7Qa%2FGkw2W4BB0dDbstwSEYtFx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;폰트마다 문자를 표현하기 위해 확보하고 있는 상하 여백의 차이가 존재하기 때문인데요. 이 여백을 제거할 수 있는 속성이 text-box-trim입니다. 이 속성은 이전에 있던 leading-trim 속성 의 이름이 변경되어 아직 초안(Working Draft) 작업 중입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bL9EwN/btskaD4VebK/uQA7V2NsPXk170Hc4oeV61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bL9EwN/btskaD4VebK/uQA7V2NsPXk170Hc4oeV61/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;467&quot; data-filename=&quot;스크린샷 2023-06-09 오전 1.05.22.png&quot; data-widthpercent=&quot;50.05&quot; style=&quot;width: 49.4644%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bL9EwN/btskaD4VebK/uQA7V2NsPXk170Hc4oeV61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbL9EwN%2FbtskaD4VebK%2FuQA7V2NsPXk170Hc4oeV61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5dpbw/btsj5QE1Nuo/yloP17avBfwZ0Dbfx0lHs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5dpbw/btsj5QE1Nuo/yloP17avBfwZ0Dbfx0lHs0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-16 오전 12.17.21.png&quot; style=&quot;width: 49.3728%;&quot; data-widthpercent=&quot;49.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5dpbw/btsj5QE1Nuo/yloP17avBfwZ0Dbfx0lHs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5dpbw%2Fbtsj5QE1Nuo%2FyloP17avBfwZ0Dbfx0lHs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;h2에 지정한 text-box-trim: both 로 헤드라인 텍스트의 상하에 있던 여백을 제거하여 이미지의 상단라인과 그리드를 맞출 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.19.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ynv4z/btsj7b9fhRt/iz4dyW05783DIa0KxPrpo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ynv4z/btsj7b9fhRt/iz4dyW05783DIa0KxPrpo1/img.png&quot; data-alt=&quot;SRC. What's new in CSS, WWDC23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ynv4z/btsj7b9fhRt/iz4dyW05783DIa0KxPrpo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fynv4z%2Fbtsj7b9fhRt%2Fiz4dyW05783DIa0KxPrpo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;469&quot; data-filename=&quot;스크린샷 2023-06-15 오후 5.19.32.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SRC. What's new in CSS, WWDC23&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여기까지 이번 WWDC23에서 소개된 새로운 CSS 스펙을 살펴봤습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;당장 사용할 수 있는 기능들은 아니지만 미래의 기능을 미리 알아두면 좋을 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;몇가지 소개를 건너 뛴 속성도 있는데요. 전체 동영상은 아래 링크를 확인해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.apple.com/videos/play/wwdc2023/10121&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1686815502613&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;What's new in CSS - WWDC23 - Videos - Apple Developer&quot; data-og-description=&quot;Explore the latest advancements in CSS. Learn techniques and best practices for working with wide-gamut color, creating gorgeous...&quot; data-og-host=&quot;developer.apple.com&quot; data-og-source-url=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot; data-og-url=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/clGWPQ/hyS0csMFME/gSsb7IGujq2Db0jFrZFDjk/img.jpg?width=500&amp;amp;height=282&amp;amp;face=0_0_500_282&quot;&gt;&lt;a href=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.apple.com/videos/play/wwdc2023/10121&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/clGWPQ/hyS0csMFME/gSsb7IGujq2Db0jFrZFDjk/img.jpg?width=500&amp;amp;height=282&amp;amp;face=0_0_500_282');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;What's new in CSS - WWDC23 - Videos - Apple Developer&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Explore the latest advancements in CSS. Learn techniques and best practices for working with wide-gamut color, creating gorgeous...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.apple.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>CSS</category>
      <category>CSS</category>
      <category>Safari</category>
      <category>WWDC23</category>
      <author>닥스터</author>
      <guid isPermaLink="true">https://htmlcss-docs.tistory.com/5</guid>
      <comments>https://htmlcss-docs.tistory.com/entry/new-css-features-in-wwdc23#entry5comment</comments>
      <pubDate>Fri, 16 Jun 2023 00:37:48 +0900</pubDate>
    </item>
  </channel>
</rss>