recursal/MDN huggingface dataset:
웹 컨텐츠 접근성 지침 이해하기
=================

이 문서에서는 W3C 웹 컨텐츠 접근성 지침 2.0 또는 2.1(이 글에서는 WCAG)에 설명된 권장 사항들을 준수하기 위한 단계들을 이해하는 데에 도움이 되는 간략한 설명을 제공합니다.

WCAG 2.0과 2.1은 다양한 장애를 가진 사람들이 웹 컨텐츠에 더 쉽게 접근할 수 있게 하는 자세한 지침을 제공합니다. 포괄적이지만 매우 구체적이며, 빠르게 이해하기엔 다소 어려울 수 있습니다. 이런 복잡하고 어려운 권장 사항들을 충족하기 위한 단계들을 요약해 놓았으며, 상세 정보가 필요한 경우 링크를 제공합니다.

4대 원칙
-----

WCAG는 크게 네 가지 원칙으로 분류할 수 있습니다. 이는 웹 컨텐츠의 접근성을 위해 **반드시** 고려해야 하는 사항들입니다 (WCAG의 정의는 접근성 4대 원칙의 이해 참조).

아래의 링크들을 클릭하면 해당 영역에 대해 더 자세히 설명하는 페이지로 이동하며, 각 원칙들을 더욱 세분화 한 WCAG 2.0과 2.1의 지침을 준수할 수 있는 실용적인 조언들을 통해 웹 컨텐츠를 작성할 수 있도록 합니다.

* 인식의 용이성: 사용자가 하나 또는 다수의 감각을 사용해 어떤 방식으로든 인지할 수 있어야 합니다.
* 운용의 용이성: 사용자가 UI 요소들을 컨트롤 할 수 있어야 합니다(예를 들어, 버튼은 마우스, 키보드, 음성 명령 등의 방식으로 클릭이 가능해야 합니다).
* 이해의 용이성: 컨텐츠를 사용자가 이해할 수 있어야 합니다.
* 견고성: 컨텐츠는 각기 다른 브라우저에서, 현재와 미래에 모두 동작할 수 있도록 널리 알려진 웹 표준을 준수하여 개발되어야 합니다.
WCAG 2.0과 2.1 중 어떤 것을 사용해야 하나요?
-------------------------------

WCAG 2.1 은 가장 최신화된 접근성 표준입니다. WCAG 2.1 을 사용해 장애를 가진 사람들을 돕고, 웹 사이트 소유자에게 생길 법적인 위험을 줄일 수 있습니다. 자원을 할당할 때에는 WCAG 2.0 을 목표로 하고, 단계적으로 WCAG 2.1로 나아가세요.

### WCAG 2.1이 뭔가요?

WCAG 2.1 은 2018년 6월 5일에 공식 권장 사항으로 발표되었습니다. 유럽 연합 (EU)은 디지털 접근성 표준으로 2018년 9월에 WCAG 2.1을 채택했습니다. W3C 는 WCAG 2.1 Adoption in Europe 라는 글을 발행했습니다.

WCAG 2.1 은 다음을 포함합니다.

* WCAG 2.0 의 모든 것 (문자 그대로)
* A / AA / AAA 수준의 17가지 새로운 기준은 주로 아래 사용자들의 요구 사항에 대한 내용입니다.
    + 모바일 접근성
    + 낮은 시력을 가진 사용자
    + 인지 장애를 가진 사용자
* WCAG 2.1 더 알아보기
    + Deque: WCAG 2.1: 접근성 지침의 다음 단계
    + TPG: 웹 컨텐츠 접근성 지침 (WCAG) 2.1
법적 유효성
------

이 가이드는 접근성이 높은 웹 사이트를 만들기 위한 실용적인 정보들을 제공하는 것을 목표합니다. 하지만 우리는 법조인이 아니기 때문에, 이 문서를 법률 자문으로 받아들여서는 안됩니다. 웹 접근성에 대한 법적 문제가 우려된다면, 해당 국가나 지역의 웹/공공 자원에 대한 접근성에 관련된 법률을 확인하고, 전문 변호사의 자문을 구하는 것이 좋습니다.

접근성이란 무엇인가? 와, 특히 접근성 지침과 관련 법률 섹션에서 관련된 추가 정보들을 제공합니다.
모바일 접근성 점검항목
============

이 문서는 모바일 앱 개발자를 위해 접근성 요구 사항에 대한 간결한 체크리스트를 제공합니다. 이 문서는 다양한 패턴의 발생에 맞춰 지속적으로 진화하려는 의도로 작성되었습니다.

색
-

* 색상 대비는 반드시 WCAG 2.0 AA 레벨 요건을 준수해야 합니다.
    + 일반적인 크기의 텍스트(18pt 보다 작거나 14pt 볼드체)는 4.5:1
    + 큰 크기의 텍스트(적어도 18pt 보다 크거나 14pt 볼드체)는 3:1
* 색상을 통해 전달되는 정보는 반드시 다른 수단으로도 제공되어야 합니다(링크 텍스트의 밑줄 등).
가시성
---

* opacity:0, z-index 조정 및 화면 밖 배치와 같은 콘텐츠 숨기기 기법은 단순히 가시성을 처리하기 위해서만 사용되어서는 안 됩니다.
* 현재 보이는 화면 이외의 모든 것은 반드시 "진짜로" 보이지 않아야 합니다(특히 여러 개의 "카드" 가 있는 단일 페이지 앱에 관련됨).
    + `hidden` 속성 또는 `visibility` 또는 `display` 스타일 속성값을 이용하세요.
    + 불가피한 경우를 제외 하고 `aria-hidden` 속성을 사용하지 마세요.
포커스
---

* 활성화 가능한 모든 요소는 포커스가 가능해야 합니다.
    + 링크, 버튼 및 form 필드와 같은 표준 컨트롤들은 기본적으로 포커스가 가능합니다.
    + 비표준 컨트롤들은 반드시 `button`, `link` 또는 `checkbox`와 같은 적절한 ARIA Role (en-US) 이 할당되어야 합니다.
* 포커스는 논리적인 순서와 일관된 방식으로 다루어져야 합니다.
텍스트 동등성
-------

* 앱 내 엄격하게 표현되지 않은, 텍스트가 아닌 모든 요소에 대해 동일한 의미의 텍스트가 제공되어야 합니다.
    + *alt* 와 *title* 속성은 적절하게 사용되어야 합니다 (스티브 폴크너의 HTML의 제목 특성 사용하기 가 좋은 안내서가 될 것입니다).
    + 위 속성을 사용하기 어려운 경우 `aria-label`, `aria-labelledby`, or `aria-describedby` 등과 같은 적절한 ARIA 속성들을 사용하세요.
* 텍스트 이미지 사용은 가급적 자제 해야 합니다.
* 레이블 텍스트 (또는 텍스트 이미지) 의 모든 사용자 인터페이스 컴포넌트는 프로그램 이름으로 사용할 수 있는 것과 동일한 텍스트를 사용해야 합니다. WCAG 2.1: Label in Name
* 모든 form 컨트롤 요소는 스크린 리더 사용자를 위해 label (`<label>` elements) 을 가져야 합니다.
상태 다루기
------

* 라디오 버튼 및 체크박스와 같은 표준 컨트롤들은 운영체제가 처리합니다. 그러나 다른 사용자 정의 컨트롤의 경우, `aria-checked`, `aria-disabled`, `aria-selected`, `aria-expanded`, `aria-pressed`와 같은 ARIA States를 통해 상태 변경이 제공되어야 합니다.
방향
--

* 콘텐츠는 특수한 경우를 제외하고 가로 또는 세로의 단일 방향으로 제한되어서는 안됩니다. WCAG 2.1: Orientation
    + 방향이 제한되어야 하는 특수한 경우의 예시로는 피아노 앱이나 은행 수표 앱 같은 경우가 있습니다.
일반적인 지침들
--------

* 앱 이름은 반드시 제공되어야 합니다.
* 제목 요소들은 계층 구조를 지켜야 합니다.

```html
<h1>Top level heading</h1>
<h2>Secondary heading</h2>
<h2>Another secondary heading</h2>
<h3>Low level heading</h3>
```

* ARIA Landmark Roles 은 `banner`, `complementary`, `contentinfo`, `main`, `navigation`, `search`와 같이 앱이나 문서의 구조를 설명하기 위해서 사용되어야 합니다.
* 터치 이벤트의 발생 시에는, 아래 사항들 중 최소 하나 이상을 만족해야 합니다(WCAG 2.1: Pointer Cancellation).
    + 다운 이벤트는 다른 동작을 트리거 하는 데에 사용되어서는 안됩니다
    + 액션은 업 이벤트에 의해 실행되며, 액션의 완료 전 작업을 중단하는 옵션과 액션의 완료 후 작업을 취소하는 옵션을 사용할 수 있습니다
    + 업 이벤트는 다운 이벤트에 의해 발생한 모든 작업을 취소합니다
    + 다운 이벤트에 의해 액션이 실행되어야 합니다. 예시로는 게임 앱이나 피아노 앱이 있습니다.
* 터치 요소는 유저가 상호작용 할 수 있을 정도로 충분한 크기를 가져야 합니다(적절한 터치 요소 크기에 대한 지침들은 BBC 모바일 접근성 지침을 참고하세요).

**참고:** 이 문서 원문의 작성자는 Yura Zenevich입니다.
ARIA 상태와 속성
===========

이 문서는 MDN에서 논의된 모든 WAI-ARIA 속성들을 다루는 참조 페이지를 나열합니다.

ARIA 속성을 사용하면 접근성 트리에 정의된 대로 요소의 상태와 속성을 수정할 수 있습니다.

**참고:** ARIA는 접근성 트리만을 수정하여 보조 기술이 사용자에게 컨텐츠를 제공하는 방법을 수정합니다. ARIA는 요소의 기능이나 동작에 대해 아무것도 변경하지 않습니다. 의도된 목적과 기본 기능을 위해 시맨틱 HTML 요소를 사용하지 않을 때는 행동, 포커스 및 ARIA 상태를 관리하기 위해 JavaScript를 사용해야 합니다.

ARIA 속성 유형
----------

ARIA 상태와 속성에는 4가지 유형이 있습니다:

1. ### 위젯 속성

    * `aria-autocomplete` (en-US)
    * `aria-checked` (en-US)
    * `aria-disabled` (en-US)
    * `aria-errormessage` (en-US)
    * `aria-expanded` (en-US)
    * `aria-haspopup` (en-US)
    * `aria-hidden` (en-US)
    * `aria-invalid` (en-US)
    * `aria-label`
    * `aria-level` (en-US)
    * `aria-modal` (en-US)
    * `aria-multiline` (en-US)
    * `aria-multiselectable` (en-US)
    * `aria-orientation` (en-US)
    * `aria-placeholder` (en-US)
    * `aria-pressed` (en-US)
    * `aria-readonly` (en-US)
    * `aria-required` (en-US)
    * `aria-selected` (en-US)
    * `aria-sort` (en-US)
    * `aria-valuemax` (en-US)
    * `aria-valuemin` (en-US)
    * `aria-valuenow` (en-US)
    * `aria-valuetext` (en-US)
2. ### 실시간 영역 속성

    * `aria-busy` (en-US)
    * `aria-live` (en-US)
    * `aria-relevant` (en-US)
    * `aria-atomic` (en-US)
3. ### 드래그 & 드랍 속성

    * `aria-dropeffect` (en-US)
    * `aria-grabbed` (en-US)
4. ### 관계 속성

    * `aria-activedescendant` (en-US)
    * `aria-colcount` (en-US)
    * `aria-colindex` (en-US)
    * `aria-colspan` (en-US)
    * `aria-controls` (en-US)
    * `aria-describedby`
    * `aria-description` (en-US)
    * `aria-details` (en-US)
    * `aria-errormessage` (en-US)
    * `aria-flowto` (en-US)
    * `aria-labelledby` (en-US)
    * `aria-owns` (en-US)
    * `aria-posinset` (en-US)
    * `aria-rowcount` (en-US)
    * `aria-rowindex` (en-US)
    * `aria-rowspan` (en-US)
    * `aria-setsize` (en-US)
전역 ARIA 속성
----------

일부 상태 및 속성은 ARIA 역할 적용 여부와 관계없이 모든 HTML 요소에 적용됩니다. 이들은 "전역" 속성으로 정의됩니다. 전역 상태 및 속성은 모든 역할 및 기본 마크업 요소에 의해 지원됩니다.

아래 속성 중 대부분은 전역 속성으로 특별히 금지되지 않는 한 어떤 요소에든 포함될 수 있습니다:

* `aria-atomic` (en-US)
* `aria-busy` (en-US)
* `aria-controls` (en-US)
* `aria-current` (en-US)
* `aria-describedby`
* `aria-description` (en-US)
* `aria-details` (en-US)
* `aria-disabled` (en-US)
* `aria-dropeffect` (en-US)
* `aria-errormessage` (en-US)
* `aria-flowto` (en-US)
* `aria-grabbed` (en-US)
* `aria-haspopup` (en-US)
* `aria-hidden` (en-US)
* `aria-invalid` (en-US)
* `aria-keyshortcuts` (en-US)
* `aria-label`
* `aria-labelledby` (en-US)
* `aria-live` (en-US)
* `aria-owns` (en-US)
* `aria-relevant` (en-US)
* `aria-roledescription` (en-US)

"특뱔한 상황에서만 금지된다"는 의미에서 위의 모든 속성들은 전역 속성입니다. 단, `aria-label` 및 `aria-labelledby` 속성은 `presentation` (en-US) 역할 또는 동일한 의미의 `none` (en-US) 역할을 갖는 요소들에는 허용되지 않습니다.

MDN에 정의된 상태와 속성들
----------------

다음은 MDN에서 논의된 WAI-ARIA 상태 및 속성을 다루는 참조 페이지입니다.

aria-describedby전역 `aria-describedby` 속성은 속성이 설정된 요소를 설명하는 요소(혹은 요소들)를 식별합니다.

aria-label`aria-label` 속성은 상호작용되는 요소에 레이블된 문자열 값을 정의합니다.

같이 보기
-----

* Using ARIA: roles, states, and properties (en-US)
aria-describedby
================

전역 `aria-describedby` 속성은 속성이 설정된 요소를 설명하는 요소(혹은 요소들)를 식별합니다.

설명
--

`aria-describedby` 속성은 객체를 설명하는 요소의 `id`를 나열합니다. 위젯 또는 그룹과 이를 설명하는 텍스트 간의 관계를 설정하는데 사용됩니다.

`aria-describedby` 속성은 폼 컨트롤에만 제한되지 않습니다. 정적 텍스트를 위젯, 요소 그룹, 제목이 있는 영역, 정의 등과 연결하는 데에도 사용할 수 있습니다. `aria-describedby` 속성은 시맨틱 HTML 요소와 ARIA `role` (en-US)이 있는 요소와 함께 사용될 수 있습니다.

`aria-describedby` 속성은 `aria-labelledby` (en-US) 속성과 매우 유사합니다. `aria-labelledby`는 객체의 본질을 설명하는 레이블 혹은 요소의 `id`를 나열하는 반면, `aria-describedby`는 사용자가 필요할 수 있는 추가 정보를 제공하는 설명 혹은 요소의 `id`를 나열합니다. `aria-labelledby`와 `aria-describedby`는 모두 텍스트 대안을 계산하기 위해 다른 요소를 참조하지만, 레이블은 간결해야 하는 반면, 설명은 더 자세한 정보를 제공하기 위한 것입니다. 레이블은 객체의 본질을 설명하는 반면, 설명은 사용자가 필요할 수 있는 추가 정보를 제공합니다.

`aria-describedby`으로 연결된 요소는 표시할 필요가 없습니다. 해당 요소가 숨겨져 있어도 요소를 참조할 수 있습니다. 예를 들어 폼 컨트롤에 기본적으로 숨겨져 있는 설명이 "추가 정보" 아이콘과 같은 공개 위젯을 사용하여 요청할 때 표시되도록 할 수 있습니다. 일반 사용자는 아이콘을 클릭합니다. 보조 기술 사용자의 경우 설명은 해당 폼 필드에서 `aria-describedby`으로 직접 참조됩니다.

`aria-describedby` 속성은 관련 콘텐츠에 일반 텍스트로 표시되는 설명이 포함되는 경우에 적절합니다. 콘텐츠에 많은 양의 콘텐츠, 유용한 시멘틱이 포함되어 있거나 사용자 탐색을 요구하는 복잡한 구조인 경우 `aria-details` (en-US)를 사용합니다. `aria-details`는 보조 기술 사용자에게 관련 구조화된 콘텐츠를 방문하고 추가 탐색 명령을 제공해서 구조를 더 쉽게 이해하거나 정보를 더 작은 조각으로 경험할 수 있게 해줍니다.

**참고:** `aria-describedby` 콘텐츠는 텍스트 문자열이어야 합니다. 콘텐츠에 중요한 기본 시멘틱이 있는 경우 `aria-details` (en-US)를 사용하는 것이 좋습니다.

예제
--


```html
<button aria-describedby="trash-desc">휴지통으로 이동</button>
…
<p id="trash-desc">휴지통에 있는 항목은 30일 후에 영구적으로 삭제됩니다.</p>
```


**참고:** `aria-describedby` 속성은 외부 리소스로부터의 설명을 참조하도록 설계되지 않았습니다. 이 값은 하나 이상의 `id`(다수인 경우 공백으로 구분)이므로 동일한 DOM 문서에 있는 요소를 참조해야 합니다.

값
-

ID 참조 목록

현재 요소를 설명하는 `id` 혹은 공백으로 구분된 요소 `id` 목록입니다.

관련 역할
-----

**모든** 역할에 사용됩니다. 모든 HTML 요소에서도 사용할 수 있습니다.

명세서
---

| Specification |
| --- |
| Accessible Rich Internet Applications (WAI-ARIA) # aria-describedby |
| Accessible Rich Internet Applications (WAI-ARIA) # aria-describedby |

같이 보기
-----

* `<label>`
* `aria-labelledby` (en-US)
* `aria-description` (en-US)
* `aria-details` (en-US)
* Browser and AT support for `aria-describedby`
Elements
========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축
 여기에서 다루는 요소의 두 타입은 최상위 요소와 명령(instruction)입니다. 최상위 요소는 `<xsl:stylesheet>`나 `<xsl:transform>`의 자식으로 나타나야 합니다. 이에 반해, 명령은 템플릿과 관련이 있습니다. 스타일시트는 여러 템플릿을 포함할지도 모릅니다. 여기서 다루지 않는 세 번째 타입의 요소는 LRE(literal result element)입니다. LRE 또한 템플릿에 나타납니다. LRE는 예를 들어, HTML 변환 스타일시트 안의 `<hr>` 요소처럼 결과 문서에 복사되는게 좋은 어떤 비명령 요소로 이루어져 있습니다.
관련 기록에 따르면, LRE의 어떤 속성과 한정된 수의 XSLT 요소의 속성도 속성값 템플릿으로 알려진 것을 또한 포함할 수 있습니다. 속성값 템플릿은 단순히 속성값 지정에 쓰이는 임베드된 XPath 식을 포함하는 문자열입니다. 실행할 때 식을 평가하고 평가 결과는 XPath 식으로 바꾸어 놓습니다. 예를 들어, "`image-dir`" 변수를 다음처럼 정의했다고 하면,
```

<xsl:variable name="image-dir">/images</xsl:variable>
```


평가된 식은 중괄호 안에 놓입니다.
```

<img src="{$image-dir}/mygraphic.jpg"/>
```


이는 다음과 같은 결론에 다다릅니다.
```

<img src="/images/mygraphic.jpg"/>
```


뒤따르는 요소 주석은 설명과 문법 나열, 필수 속성과 선택 속성 목록, 타입과 자리 설명, W3C 권고안 속 요소 소스와 현 Gecko의 지원 정도에 대한 설명을 포함합니다.

* `<xsl:apply-imports>`
* `<xsl:apply-templates>`
* `<xsl:attribute>`
* `<xsl:attribute-set>`
* `<xsl:call-template>`
* `<xsl:choose>`
* `<xsl:comment>`
* `<xsl:copy>`
* `<xsl:copy-of>`
* `<xsl:decimal-format>`
* `<xsl:element>`
* `<xsl:fallback>` *(not supported)*
* `<xsl:for-each>`
* `<xsl:if>`
* `<xsl:import>` *(mostly supported)*
* `<xsl:include>`
* `<xsl:key>`
* `<xsl:message>`
* `<xsl:namespace-alias>` *(not supported)*
* `<xsl:number>` *(partially supported)*
* `<xsl:otherwise>`
* `<xsl:output>` *(partially supported)*
* `<xsl:param>`
* `<xsl:preserve-space>`
* `<xsl:processing-instruction>`
* `<xsl:sort>`
* `<xsl:strip-space>`
* `<xsl:stylesheet>` *(partially supported)*
* `<xsl:template>`
* `<xsl:text>` *(partially supported)*
* `<xsl:transform>`
* `<xsl:value-of>` *(partially supported)*
* `<xsl:variable>`
* `<xsl:when>`
* `<xsl:with-param>`
otherwise
=========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:otherwise>` 요소는 아무런 `<xsl:when>` 조건도 적용하지 않았을 때 취하면 좋을 동작을 정의하는 데 씁니다. 다른 프로그래밍 언어의 `else`나 `default` 경우와 비슷합니다.

### 문법
```

<xsl:otherwise>
  TEMPLATE
</xsl:otherwise>
```

### 필수 속성

없음.

### 선택 속성

없음.

### 타입

하위명령, 템플릿 안에서 `<xsl:choose>` 요소의 마지막 자식으로 나타나야 함.

### 정의

XSLT section 9.2, Conditional Processing with xsl:choose

### Gecko 지원

지원함.
message
=======

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:message>` 요소는 (NS에서 JavaScript 콘솔에) 메시지를 출력하고 선택에 따라 스타일시트 실행을 끝냅니다. 디버깅에 유용할 수 있습니다.

### 문법
```

<xsl:message terminate="yes" | "no" >
  TEMPLATE
</xsl:message>
```

### 필수 속성

없음.

### 선택 속성

`terminate`

"`yes`"로 설정하면, 실행을 끝마치는 게 좋겠다는 것을 나타냅니다. 기본값은 "`no`"이고 어느 경우에는 메시지가 출력하고 실행을 계속합니다.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 13, Messages

### Gecko 지원

지원함.
for-each
========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:for-each>` 요소는 노드 집합을 선택하고 같은 방식으로 각 노드를 처리합니다. 노드 집합을 되풀이하(iterate)거나 현재 노드를 바꾸는데 자주 씁니다. 하나 이상의 `<xsl:sort>` 요소가 이 요소의 자식으로 나타나면, 처리에 앞서 정렬을 합니다. 그렇지 않으면, 노드는 문서 순으로 처리합니다.

### 문법
```

<xsl:for-each select=EXPRESSION>
  <xsl:sort> [optional]
  TEMPLATE
</xsl:for-each>
```

### 필수 속성

`select`

처리할 노드를 선택하기 위해 XPath 식을 씁니다.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 8, Repetition

### Gecko 지원

지원함.
number
======

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:number>` 요소는 숫자를 연속으로 셉니다. 또한 숫자를 빠르게 구성하는(format) 데도 쓸 수 있습니다.

### 구문


```xml
<xsl:number
 count=EXPRESSION
 level="single" | "multiple" | "any"
 from=EXPRESSION
 value=EXPRESSION
 format=FORMAT-STRING
 lang=XML:LANG-CODE
 letter-value="alphabetic" | "traditional"
 grouping-separator=CHARACTER
 grouping-size=NUMBER />
```

### 필수 속성

없음.

### 선택 속성

`count`

소스 트리에서 연속으로 셀 대상을 지정합니다. XPath 식을 씁니다.

`level`

일련번호를 만드는데 소스 트리의 수준을 어떻게 고려해야 하는 지를 정의합니다. 유효한 값은 `single`, `multiple`, `any` 세 가지. 기본값은 `single`입니다.

* `single` 목록의 항목대로 연속으로 형제 노드를 번호 매깁니다. 처리기는 `count` 속성과 일치하는 `ancestor-or-self` 축의 첫 번째 노드로 갑니다. 그리고 나서 역시 `count` 속성과 일치하는 앞선 형제(preceding siblings) 노드(있다면, 한 짝인 `from` 속성에 이르러 멈춤)를 모두 더하여 셉니다. 일치하지 않으면, sequence는 빈 목록입니다.
* `multiple` 노드의 계층 위치를 반영하는 복합 sequence로 노드를 셉니다. 예를 들어, 1.2.2.5 (포개진 형식은 `format` 속성(예, A.1.1)으로 지정할 수 있습니다). 처리기는 만약 있다면 `from` 속성에 이르러 멈추며 현재 노드와 현재 노드의 모든 `ancestors`를 조사합니다. 일치하지 않으면, sequence는 빈 목록입니다.
* `any` (이번에 지원 안 함.) 수준을 무시하고 연속으로 일치하는 모든 노드를 셉니다. `ancestor`, `self`, `preceding` 축을 모두 고려합니다. 처리기는 현재 노드에서 시작하여 `from` 속성과 일치할 때 멈추며 문서 역순으로 진행합니다. 발견한 `count` 속성과 일치하지 않으면, sequence는 빈 목록입니다. 이 수준은 이번에 지원하지 않습니다.

from

번호 매기기를 시작하거나 다시 시작하면 좋을 곳을 지정합니다. 순서는 `from` 특성과 일치하는 노드의 첫 번째 자손(descendant)에서 시작합니다.

value

숫자에 주어진 형식을 적용합니다. 이것이 사용자 제공 숫자(노드 sequence 숫자와는 반대로)를 표준 `<xsl:number>` 형식으로 구성하는 빠른 방법입니다.

format

만드는 숫자의 형식을 정의합니다.

format="1"

1 2 3 . . . (This is the only format supported at this time)

format="01"

01 02 03 . . . 09 10 11 . . .

format="a"

a b c . . .y z aa ab . . .

format="A"

A B C . . . Y Z AA AB . . .

format="i"

i ii iii iv v . . .

format="I"

I II III IV V . . .


lang (이번에는 지원 안 함)

문자에 기반을 둔 번호 매기기 형식에 쓰면 좋을 언어의 알파벳을 지정합니다.

letter-value

문자(letter)를 쓰는 번호 매김 열(sequence) 사이를 명확하게 합니다. 어떤 언어는 문자(letter)를 쓰는 하나 이상의 번호 매기기 시스템이 있습니다. 두 시스템이 같은 토큰으로 시작하면, 모호함이 생길 수 있습니다. 이 속성은 "`alphabetic`"나 "`traditional`" 값일 수 있습니다. 기본값은 "`alphabetic`"입니다.

grouping-separator

어떤 문자를 그룹(예로 천 단위) 구분자로 쓰면 좋을지를 지정합니다. 기본값은 쉼표(`,`)입니다.

grouping-size

숫자 그룹을 만드는 자릿수를 나타냅니다. 기본값은 "`3`"입니다.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 7.7, Numbering

### Gecko 지원

부분 지원. 위 해설을 보세요.
fallback
========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:fallback>` 요소는 주어진 확장(이나 결국에는 새 버전) 요소에서 지원하지 않으면 쓸 템플릿을 지정합니다.

### 문법
```

<xsl:fallback>
  TEMPLATE
</xsl:fallback>
```

### 필수 속성

없음.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 15, Fallback

### Gecko 지원

이번에 지원 안 함.
decimal-format
==============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:decimal-format>` 요소는
 `format-number( )`
 함수를 써서 숫자를 문자열로 바꿀 때 쓰는 기호와 문자를 정의합니다.

### 문법
```

<xsl:decimal-format
  name=NAME
  decimal-separator=CHARACTER
  grouping-separator=CHARACTER
  infinity=STRING
  minus-sign=CHARACTER
  NaN=STRING
  percent=CHARACTER
  per-mille=CHARATER
  zero-digit=CHARACTER
  digit=CHARACTER
  pattern-separator=CHARACTER />
```

### 필수 속성

없음.

### 선택 속성

`name`

이 형식에 이름을 지정합니다.

`decimal-separator`

소숫점 문자를 지정합니다. 기본값은 (`.`)입니다.

`grouping-separator`

그룹 구분 문자를 지정합니다. 기본값은 (`,`)입니다.

`infinity`

무한대(infinity)를 나타내는데 쓰는 문자열을 지정합니다. 기본값은 "`Infinity`" 문자열입니다.

`minus-sign`

빼기 기호 문자를 지정합니다. 기본값은 (`-`)입니다.

`NaN`

값이 숫자가 아닐 때 쓰는 문자열을 지정합니다. 기본값은 "`NaN`" 문자열입니다.

`percent`

백분율(percentage) 기호 문자를 지정합니다. 기본값은 (`%`)입니다.

`per-mille`

천분율(per thousand) 문자를 지정합니다. 기본값은 (`‰`)입니다.

`zero-digit`

숫자 0으로 쓸 문자를 지정합니다. 기본값은 (`0`)입니다.

`digit`

형식 패턴에서 숫자(digit)를 나타내는데 쓰는 문자를 지정합니다. 기본값은 (`#`)입니다.

`pattern-separator`

형식 패턴에서 양수와 음수 부분패턴을 구분하는 문자를 지정합니다. 기본값은 (`;`)입니다.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식이어야 함.

### 정의

XSLT section 12.3, Number Formatting

### Gecko 지원

Mozilla 1.0과 Netscape 7.0 현재 지원함.
comment
=======

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:comment>` 요소는 출력 문서에 주석을 작성합니다. 오직 텍스트만 포함해야 합니다.

### 문법
```

<xsl:comment>
  TEMPLATE
</xsl:comment>
```

### 필수 속성

없음.

### 선택 속성

없음.

### 타입

명령, 템플릿과 함께 나타남.

### 정의

XSLT section 7.4, Creating Comments

### Gecko 지원

지원함.
apply-templates
===============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:apply-templates>` 요소는 입력 트리 안 노드 집합을 선택하고 그 집합에 알맞은 템플릿을 적용하도록 처리기에게 지시합니다.

### 문법
```

<xsl:apply-templates select=EXPRESSION mode=NAME>
  <xsl:with-param> [optional]
  <xsl:sort> [optional]
</xsl:apply-templates>
```

### 필수 속성

없음.

### 선택 속성

`select`

처리할 노드를 지정하는 XPath 식을 씁니다. 별표(`*`)는 전체 노드 집합을 선택합니다. 이 속성이 없으면, 현재 노드의 모든 자식 노드를 선택합니다.

`mode`

같은 노드를 정의하는 다양한 처리 방법이 있다면, 그 방법들을 구별합니다.

### 타입

명령, 템플릿 안에 나타남

### 정의

XSLT section 5.4, Applying Template Rules

### Gecko 지원

지원함.
attribute
=========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:attribute>` 요소는 스타일시트에서 접근할 수 있는 어떤 값을 써서 출력 문서에 속성을 만듭니다. 요소는 속성값을 자리 잡게 하는 출력 문서 요소 안에 정의한 것 가운데 처음이어야 합니다.

### 문법
```

<xsl:attribute name=NAME namespace=URI>
  TEMPLATE
</xsl:attribute>
```

### 필수 속성

`name`

출력 문서에 만들려는 속성에 이름을 지정합니다. 이름은 유효한 QName이어야 합니다.

### 선택 속성

`namespace`

출력 문서에 이 속성을 위한 이름공간(namespace) URI를 정의합니다. 이 요소와 관련된 이름공간 접두사를 설정할 수 없습니다.

### 타입

명령, 템플릿이나 `<xsl:attribute-set>` 요소 안에 나타남.

### 정의

XSLT section 7.1.3, Creating Attributes with xsl:attribute

### Gecko 지원

지원함.
variable
========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:variable>` 요소는 스타일시트에 전역 변수나 지역 변수를 선언하고 그 변수에 값을 줍니다. XSLT가 부작용(side-effect)을 허용하지 않기 때문에, 변수값을 한 번 주면 그 변수는 범위(scope)를 벗어날 때까지 같은 값입니다.

### 구문
```

<xsl:variable name=NAME select=EXPRESSION >
  TEMPLATE
</xsl:variable>
```

### 필수 속성

`name`

변수에 이름을 줍니다.

### 선택 속성

`select`

변수값을 XPath 식으로 정의합니다. 요소가 템플릿을 포함하면, 이 속성은 무시합니다.

### 타입

최상위 또는 명령. 최상위 요소로 나타나면, 변수의 범위는 전역이고 문서 전체에서 접근할 수 있습니다. 템플릿 안에 나타나면, 번수의 범위는 지역이고 나타난 템플릿 안에서만 접근할 수 있습니다.

### 정의

XSLT section 11, Variables and Parameters

### Gecko 지원

지원함.
text
====

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:text>` 요소는 출력 트리에 리터럴(literal) 텍스트를 씁니다. `#PCDATA`, 리터럴 텍스트, 엔티티 참조를 포함할 지도 모릅니다.

### 구문
```

<xsl:text disable-output-escaping="yes" | "no">
  TEXT
</xsl:text>
```

### 필수 속성

없음.

### 선택 속성

`disable-output-escaping` (Netscape은 변환 결과를 "output" 아래에 직렬하지 않습니다. 그래서 이 속성은 본래 문맥에서는 무의미합니다. HTML 엔티티를 출력하기 위해서는, 대신 숫자값을 쓰세요. 보기 &`nbsp` 대신 `&#160`)

특수 문자를 출력에 쓸 때 해석할(escape) 지를 지정합니다. 가능한 값은 "`yes`"나 "`no`"입니다. 예를 들어, "`yes`"로 하면, 문자의 출력은 "`&gt`"가 아니라 `>`입니다.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 7.2, Creating Text

### Gecko 지원

적힌 대로 지원함
strip-space
===========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:strip-space>` 요소는 공백을 지웠으면 하는 소스 문서의 요소를 정의합니다.

### 문법
```

<xsl:strip-space elements=LIST-OF-ELEMENT-NAMES  />
```

### 필수 속성

`elements`

지우면 좋을 공백뿐인 텍스트 노드가 있는 소스의 요소 목록(빈칸으로 구분)을 지정합니다.

### 선택 속성

없음.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식이어야 함.

### 정의

XSLT section 3.4, Whitespace Stripping

### Gecko 지원

지원함.
transform
=========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:transform>` 요소는 `<xsl:stylesheet>` 요소와 정확히 같습니다.

### Gecko 지원

지원함.
apply-imports
=============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:apply-imports>` 요소는 꽤 불가사의하고 보통은 복잡한 스타일시트에 쓰입니다. 가져오기(import) 우선순위는 가져온 스타일시트 안 템플릿 규칙보다 주 스타일시트의 안 템플릿 규칙이 더 높기를 요구합니다. 그러나, 때로는 처리기(processor)가 주 스타일시트 안 규칙보다 (우선순위가 낮은) 가져온 스타일시트의 템플릿 규칙을 쓰도록 강제할 수 있는 게 유용합니다.

### 문법
```

<xsl:apply-imports/>
```

### 필수 속성

없음.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남

### 정의

XSLT section 5.6, Overriding Template Rules

### Gecko 지원

지원함.
namespace-alias
===============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:namespace-alias>` 요소는 스타일시트 이름공간을 출력 트리의 다른 이름공간으로 매기는(map) 데 드물게 쓰는 방안(device)입니다. 이 요소의 가장 평범한 쓰임은 다른 스타일시트로부터 스타일시트를 만드는 것입니다. 보통 `xsl:`가 접두사로 붙은 (결과 트리에 단순히 복사해도 좋을) LRE(literal result element)를 처리기가 오해하는 것을 막기 위해, 결과 트리의 XSLT 이름공간에 적당하게 도로 다시 바꿀 임시 이름공간을 할당합니다.

### 문법
```

<xsl:namespace-alias stylesheet-prefix=NAME result-prefix=NAME />
```

### 필수 속성

`stylesheet-prefix`

임시 이름공간을 지정합니다.

`result-prefix`

결과 트리에 사용하길 바라는 이름공간을 지정합니다.

### 선택 속성

없음.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식이어야 함.

### 정의

XSLT section 7.1.1, Literal Result Elements

### Gecko 지원

이번에 지원 안 함.
attribute-set
=============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:attribute-set>` 요소는 CSS 안에 이름 붙인 스타일과 비슷한 방식으로 이름 붙인 속성 집합을 만듭니다. 그러면, 출력 문서에 전체로서 적용할 수 있습니다.

### 문법
```

<xsl:attribute-set name=NAME use-attribute-sets=LIST-OF-NAMES>
  <xsl:attribute>
</xsl:attribute-set>
```

### 필수 속성

`name`

속성 집합에 이름을 지정합니다. 이름은 유효한 QName이어야 합니다.

### 선택 속성

`use-attribute-sets`

다른 속성 집합으로부터 속성 집합을 빌드합니다. 기여한 집합의 이름은 공백 문자로 구분해야 하고 직접 혹은 간접으로 서로 임베드하지 않아야 합니다.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식이어야 함.

### 정의

XSLT section 7.1.4, Named Attribute Sets

### Gecko 지원

지원함.
import
======

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:import>` 요소는 한 스타일시트의 컨텐트를 다른 스타일시트로 가져오는 역할을 하는 최상위 요소입니다. 대체로, 가져올 스타일시트의 컨텐트는 가져오는 스타일시트의 컨텐트보다 가져오기 우선순위가 낮습니다. 이는 포함되는 스타일시트의 컨텐트가 포함하는 스타일시트의 컨텐트와 우선순위가 정확히 같은 `<xsl:include>`와는 뚜렷이 다릅니다.

### 문법
```

<xsl:import href=URI  />
```

### 필수 속성

`href`

가져올 스타일시트의 URI를 지정합니다.

### 선택 속성

없음.

### 타입

최상위, 가져오는 스타일시트 안 `<xsl:stylesheet>`나 `<xsl:transform>`의 자식 가운데 가장 앞에 나타나야 함.

### 정의

XSLT section 2.6.2, Stylesheet Import

### Gecko 지원

Mozilla 1.0 현재 최상위 변수와 매개변수에 문제가 조금 있지만 대부분 지원함.
template
========

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:template>` 요소는 출력 생성 템플릿을 정의합니다. 이 요소는 match 속성이나 name 속성 집합이 있어야 합니다.

### 문법
```

<xsl:template
  match=PATTERN
  name=NAME
  mode=NAME
  priority=NUMBER>
  <xsl:param> [optional]
  TEMPLATE
</xsl:template>
```

### 필수 속성

없음.

### 선택 속성

`match`

이 템플릿을 쓰면 좋을 요소를 결정하는 패턴을 지정합니다. `name` 속성이 없다면, 필수 속성입니다.

`name`

`<xsl:call-template>` 요소가 호출할 수 있는 이 템플릿에 이름을 지정합니다.

`mode`

이 템플릿에 `<xsl:apply-templates>` 요소의 속성과 일치할 수 있는 특유한 모드를 지정합니다. 이는 같은 정보를 다양한 방식으로 처리하는데 유용합니다.

`priority`

이 템플릿에 숫자로 된 우선권을 지정합니다. 이는 `Infinity`와 다른 아무 숫자일 수 있습니다. 처리기는 하나 이상의 템플릿이 같은 노드와 일치할 때 이 숫자를 씁니다.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식이어야 함.

### 정의

XSLT section 5.3, Defining Template Rules

### Gecko 지원

지원함.
processing-instruction
======================

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:processing-instruction>` 요소는 출력 문서에 처리 명령을 씁니다.

### 문법

`<xsl:processing-instruction name=NAME> TEMPLATE </xsl:processing-instruction>`

### 필수 속성

`name`

처리 명령에 이름을 지정합니다.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 7.3, Creating Processing Instructions

### Gecko 지원

지원함.
if
==

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:if>` 요소는 test 속성과 템플릿을 포함합니다. test 속성을 참으로 평가하면, 템플릿을 처리합니다. 이것은 다른 언어의 if 문과 비슷합니다. 그러나, `<tt>if-then-else</tt>` 문의 기능을 다하기 위해 `<xsl:when>`과 `<xsl:otherwise>` 자식이 하나씩 있는 `<xsl:choose>` 요소를 씁니다.

### 문법
```

<xsl:if test=EXPRESSION>
  TEMPLATE
</xsl:if>
```

### 필수 속성

`test`

Boolean 값으로 (필요하다면 `boolean( )`으로 정의한 규칙을 써서) 평가할 수 있는 XPath 식을 포함합니다. 값이 참이면 템플릿을 처리하고 거짓이면 아무 동작도 하지 않습니다.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 9.1, Conditional Processing with xsl:if

### Gecko 지원

지원함.
include
=======

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:include>` 요소는 한 스타일시트의 컨텐트를 다른 스타일시트에 합칩니다. `<xsl:import>`와는 달리, 포함되는 스타일시트의 컨텐트는 포함하는 스타일시트의 컨텐트와 우선순위가 정확히 같습니다.

### 문법
```

<xsl:include href=URI />
```

### 필수 속성

`href`

포함할 스타일시트의 URI를 지정합니다.

### 선택 속성

없음.

### 타입

최상위, `<xsl:stylesheet>`나 `<xsl:transform>`의 자식으로 나타남.

### 정의

XSLT section 2.6.1, Stylesheet Inclusion

### Gecko 지원

지원함.
call-template
=============

**XSLT/XPath 참고 문서**: XSLT 요소, XPath 함수, XPath 축

`<xsl:call-template>` 요소는 이름 붙인 템플릿을 호출합니다.

### 문법
```

<xsl:call-template name=NAME>
  <xsl:with-param> [optional]
</xsl:call-template>
```

### 필수 속성

`name`

호출하고 싶은 템플릿의 이름을 지정합니다.

### 선택 속성

없음.

### 타입

명령, 템플릿 안에 나타남.

### 정의

XSLT section 6, Named Templates

### Gecko 지원

지원함.