이 스펙 문서는 종종 같은 콘텍스트에 놓여있는 HTML, XML의 속성과 IDL 속성을 언급합니다. 어떤 속성에 대한 언급인지 불명확한 경우, HTML 및 XML 속성의 콘텐츠 속성 및 IDL 인터페이스에서 정의하는 IDL 속성으로써 언급됩니다. 마찬가지로 용어 "프로퍼티"는 JavaScript의 객체 프로퍼티 및 CSS 프로퍼티에 모두 사용됩니다. 프로퍼티가 불분명한 경우, 각각 객체 프로퍼티 및 CSS 프로퍼티로 자격을 가집니다.
일반적으로 어떤 기능이 HTML 구문 혹은 XHTML 구문 중 하나에서 언급하는 경우, 다른 쪽도 포함합니다. 기능이 둘 중 하나에만 명확히 해당하는 경우"HTML에서만…(이는 XHTML에는 적용되지 않습니다)" 같이 다른 형식에 적용되지 않음을 명확히 표시합니다.
이 스펙은 짧은 정적 문서에서 리치 멀티미디어를 아우르는 에세이나 보고서뿐만 아니라, 본격적인 대화형 어플리케이션에 이르는, HTML의 모든 용법을 나타내는 문서를 이용합니다. 이 문서는, 문맥에 따라서 Document
객체 및 자손 DOM 트리, HTML구문 또는 XHTML구문을 사용하여 직렬화된 바이트 스트림을 나타내는 데 사용합니다.
DOM 구조 문맥에서 용어 HTML 문서 및 XML 문서는 DOM 스펙 문서에서 정의한대로 사용하여 Document
객체가 자신을 찾을 수 있는 2가지 다른 모드를 나타냅니다.[DOM](이러한 용도인 경우 항상 정의 하이퍼링크가 걸립니다)
바이트 스트림 문맥에서 용어 HTML 문서는 text/html
로 분류되어있는 리소스를 나타내며, 용어 XML 문서는 XML MIME 타입으로 분류된 리소스를 나타냅니다.
용어 XHTML 문서는 문맥에 따라서 HTML 네임스페이스 안의 요소 노드를 포함하는 XML 문서모드에서 Document
및 HTML 네임스페이스에서 유래한 요소를 포함한XML MIME 타입으로 분류된 바이트스트림을 모두 표시하기 위해 사용합니다.
간결함을 위해 문서를 유저에게 표시되는 방법을 참조할 때 (원문에서 말하는)shown、displayed、visible 같은 용어가 사용될 지도 모릅니다. 이 용어는 시각 매체를 의미하지 않으며, 동일한 방법으로 다른 미디어에 적용한다고 생각해야 합니다.
용어 "transparent black"은 red, green, blue 및 알파 채널을 모두 0으로 처리한 색상을 가리킵니다.
스펙 문서는 유저 에이전트가 외부 리소스 시맨틱을 디코드 가능한 구현을 가가지고 있는지에 대해 참조하는 경우 용어 지원함을 사용합니다. 포맷 또는 타입은 중요한 리소스 기능을 무시하는 일 없이 구현이 그 포맷이나 타입의 리소스를 처리 가능한 경우 지원함이라 기술합니다. 특정 리소스가 지원함인지 아닌지는 리소스 포맷의 어느 기능이 사용하고 있는지에 의존합니다.
예를 들어 비록 구현되어있는 지 모르더라도 이미지가 애니메이션 데이터를 포함하더라도 픽셀 데이터를 디코딩하여 렌더링된다면, PNG 이미지는 지원 포맷으로 간주될 것입니다.
비록 구현이 파일의 메타데이터에서 동영상의 크기를 결정 가능해도, 사용하는 합축형식이 지원하지 않을 경우, MPEG-4 비디오 파일을 지원하는 형식으로 간주하지 않습니다.
특히 HTML 스펙에서 일부 스펙이 representation이라 표현하는 걸 이 스펙에서는 리소스로 표현합니다.[HTTP]
용어 MIME 타입은 프로토콜 문헌에서 가끔 인터넷 미디어 타입이라는 걸 가리키는 데 사용합니다. 이 스펙에서 용어 미디어 타입은 CSS 스펙에서 사용하는 바와 같이, 프레젠테이션을 위해 예정되는 미디어 종류를 표시하기 위해 사용합니다. [RFC2046] [MQ]
미디어 타입이 RFC 7231의 3.1.1.1절 "Media Types"에서 정의하는 media-type
규칙에 일치하는 경우 문자열은 유효한 MIME 타입이 됩니다. 구체적으로 유효한 MIME 타입은 MIME타입의 파라미터를 표현할 수 있습니다. [HTTP]
";"(U+003B)문자를 포함하지 않지만 RFC 7231의 3.1.1.1절 "Media Types"에서 정의하는 media-type
규칙과 일치하는 경우 문자열은 파라미터 없이 유효한 MIME 타입이 됩니다. 즉 MIME 타입의 파라미터가 없는 타입 및 서브 타입으로만 구성된 경우입니다.[HTTP]
용어 HTML MIME 타입은 MIME 타입이text/html
을 나타내기 위해 사용됩니다.
리소스의 크리티컬 서브 리소스는 리소스가 제대로 처리되는 데 사용할 수 있는 상태로 유지해야할 필요가 있습니다. 어떤 리소스가 크리티컬한지 간주하는 데에 리소스의 포맷을 정의하는 스펙에서 정의하지 않습니다.
용어 data:
URL은 data:
스킴을 이용해 URL을 가리킵니다.[RFC2397]
HTML에서 XHTML로 마이그레이션을 용이하게 하기 위해, 이 스펙ㅇ을 준수하는 유저 에이전트는 적어도 DOM과 CSS를 위해 http://www.w3.org/1999/xhtml
네임스페이스에 HTML 요소를 기술할 것입니다. 이 스펙에서 사용하는 용어 "HTML 요소"는 그 네임스페이스 내 임의의 요소를 가리킵니다. 따라서 HTML과 XHTML 요소 모두를 가리킵니다.
달리 작성하는 경우를 제외하고 이 스펙에서 정의하거나 작성한 모든 요소는 HTML 네임스페이스("http://www.w3.org/1999/xhtml
")이며, 이 스펙에서 정의하거나 작성한 모든 속성은 네임스페이스를 지 않습니다.
용어 요소 타입은 주어진 로컬명과 네임스페이스를 가진 요소의 집할을 참조하기 위해 사용됩니다. 예를 들어 button
요소는 요소 타입 button
을 가진 요소이며, 로컬 명 "button
" 및 (암묵적으로 위에서 정의하도록)HTML 네임스페스를 가지는 것을 의미합니다.
속성명이 XML로 정의된 Name
생성물과 일치하며여 ":"(U+003A)문자를 포함하지 않고 첫 세 문자의 문자열이 ASCII 대소문자 구분하지 않음인 문자열 "xml
"에 일치하지 않는 경우 속성명은 XML 호환이라 말합니다.[XML]
용어 XML MIME 타입은 MIME 타입text/xml
、application/xml
、subtype이 4글자 "+xml
"로 끝나는 임의의 MIME 타입을 참조하기 위해 사용됩니다. [RFC7303]
Document
객체의 루트 요소는 만약 있다면 그 Document
의 첫번째 자식이 되고, 만약 없다면 Document
가 루트 요소를 가지지 않습니다.
Document
객체의 루토 요소를 나타내지 않는 경우, 용어 루트 요소는 논의 대상 노드에서 가장 먼 조상 노드, 혹은 조상이 없는 노드 자신을 의미합니다. 노드가 문서의 일부인 경우, 노드의 루트 요소는 문서의 루트 요소 그 자체입니다. 그러나 일반적으로 노드가 문서 트리의 일부가 아니라면 루트 요소는 독립 노드일 것입니다.
요소의 루트 요소가 Document
객체의 루토 요소인 경우 노드는 Document
내에 있다고 말할 수 있습니다. 노드의 루트 요소가 변화하여 현재 문서의 루트 요소인 경우 노드는 문서 내 삽입이라고 불립니다. 마찬가지로 문서의 루트 요소에서 별도의 요소에 루트 요소가 변하는 경우 노드는 문서에서 제거된 요소라 부릅니다
노드의 홈 서브 트리는 그 노드의 루트 요소를 루트로 삼는 서브 트리입니다. 노드가 Document
안에 존재하는 경우, 노드의 홈 서브 트리는 노드의 Document
트리 입니다.
(요소 같은)특정 Node
의 Document
는 Node
의 ownerDocument
IDL 속성이 반환하는 Document
입니다. 특정 Node
가 Document
내에 있는 경우 그 Document
는 항상 Node
의Document
이며 따라서 Node
의 ownerDocument
IDL 속성은 항상 그 Document
반환합니다.
콘텐츠 속성의 Document
는 속성 요소의 Document
입니다.
용어 트리 순서는 선행관계를 의미하며 (parentNode
/childNodes
관계를 통해)DOM 노드의 수직 조사에 관계합니다.
노드가 일부 요소 혹은 속성을 무시한다고 말하거나 다른 값처럼 취급되거나 다른 것인 마냥 다루어지는 경우, 이는 DOM이 된 후 노드 처리만을 가리킵니다. 유저 에이전트는 이런 상황에서 DOM을 변화시켜서는 안됩니다.
새로운 값이 이전 값과 다른 경우에만, 콘텐츠 속성은 값을 변경한다라 부릅니다. 이미 존재하는 속성값을 설정하는 건 변경이 아닙니다.
용어 공백은 속성값, Text
노드, 혹은 문자열에서 사용되는 경우 텍스트의 길이가 0인 것을 의미합니다. (즉 스페이스나 제어문자조차 포함하지 않습니다)
구조체 "Foo
객체"는 Foo
가 실제 인터페이스인 경우에 보다 정확한 "Foo
인터페이스를 구현하는 객체" 대신 사용합니다
IDL 속성은 그 값이 (에디터의 스크립트 등에 의해)취득 되는 경우 취득 당함이라 부르며 새로운 값을 할당할 때 설정됨이라 부릅니다.
DOM 객체가 live라 불리는 경우 그 객체의 속성과 메소드는 데이터 스스냅샷이 아닌 실제에 바탕을 두는 데이터를 조작합니다.
이벤트의 콘텍스트에 있어 용어 발화나 송출은 DOM 스펙에서 정의되는 그대로 사용합니다. 이벤트의 발화는 이벤트를 작성할 때 송출하는 것을 의미하며, 이벤트의 송출은 트리를 통해 이벤트를 전파하는 단계를 수행하는 걸 의미합니다. 용어 신뢰할 수 있는 이벤트는 isTrusted
속성이 true로 초기화된 이벤트를 참조하기 위해 사용합니다.[DOM]
용어 플러그인은 Document
객체가 속한 유저에이전트의 렌더링에 관여 가능한 유저 에이전트의 의해 사용되는 콘텐츠 핸들러에 의해 정의된 유저 에이전트를 참조하지만 Document
의 자식 브라우징 콘텍스트로써 행동할 임의의 Node
객체를 Document
DOM에 넣을 수 없습니다.
보통 그런 컨텐츠 핸들러는 제3자에 의해 제공됩니다. 무엇보다 유저 에이전트 또한 플러그인으로 빌트 인 콘텐츠 핸들러를 정의 가능합니다.
플러그인 예시로는 유저가 PDF 파일을 조작할 때 사용하는 브라우징 콘텍스트로 인스턴스를 생성한 PDF 뷰어일 것입니다. 이는 구현된 PDF 뷰어 컴포넌트가 유저 에이전트 자신에 구현된 것과 동일한 메이커인지는 관계 없이 플러그인으로써 카운트 됩니다. 그러나 유저 에이전트(같은 인터페이스를 사용하는 건 아닙니다)와는 별개로 동작하는 PDF 뷰어 어플리케이션은 이 정의에 의한 플러그인은 아닙니다.
이 명세에서는 플러그인과 상호작용하는 메커니즘에 대해서는 정의하지 않습니다. 그것은 사용자 에이전트의 몫이며 운영체제에 따라 다르기 때문입니다. 일부 사용자 에이전트는 넷스케이프의 플러그인 API와 같은 것을 선택할 수 있으며, 다른 일부는 내용 형식을 변화시키는 방법을 빌릴 수도 있고 또는 몇가지 타입에 대해 내장된 지원을 선택할 수도 있습니다. [NPAPI]
sandbox
속성 시멘틱을 부여받은 경우 플러그인은 보호 될 것입니다.
예를 들어 보호되는 플러그인은 플러그인이 샌드박스화 되는 iframe
내부에서 인스턴스화 될 때 콘텐츠가 팝업창을 생성하는 걸 방지할 것입니다.
문자 인코딩또는 애매하지 않은 곳에서 간단히 인코딩은 인코딩 표준에서 정의하는 바와 같이 바이트 스트림과 Unicode 문자열 사이의 변환 방법을 정의합니다. 인코딩은 인코딩 스펙에서 인코딩의 이름 및 라벨로 참조되어 인코딩 네임 및 1개 이상의 인코딩 라벨을 가집니다.[ENCODING]
ASCII 호환 문자 인코딩이란 바이트 0x09、0x0A、0x0C、0x0D、0x20-0x22、0x26、0x27、0x2C-0x3F、0x41-0x5A 및 0x61-0x7A이 단일 바이트 혹은 가변성 인코딩이며 멀티 바이트 배열의 2번째 것 이후의 바이트를 무시한 Windows-1252에 있어서 이런 바이트들 전체가 Unicode 문자에 변환하는 간단한 바이트 시퀀스를 대응합니다.[ENCODING]
비록 인코딩에서 0x70 같은 바이트에 있어서 ASCII로써의 해석과는 관계 없는, 더 나은 시퀀스의 일부일 가능성이 있다고 하더라도, 여기에는 Shift_JIS、HZ-GB-2312 ISO-2022 같은 변종 인코딩을 포함합니다. 그러나 UTF-7、GSM03.38, EBCDIC 같은 구식 인코딩 방식은 제외합니다.
용어 UTF-16 인코딩은 UTF-16의 임의 변종, BOM 유무에 상관 없이 UTF-16LE 혹은 UTF-16BE를 가리킵니다.[ENCODING]
용어 코드 유닛은 Web IDL 스펙에서 정의된 바와 같이 16 비트 부호없는 정수, DOMString
의 최소 기본 컴포넌트로써 사용됩니다. (이는 Unicode에서 사용되는 것보다 더 좁은 정의이며 코드 포인트와 동일하지 않습니다.)[WEBIDL]
용어 Unicode 코드 포인트는 가능하다면 Unicode 스칼라 값을, 그렇지 않다면 독립 서로게이트 코드 포인트를 의미합니다. 적합 요건이 문자 혹은 Unicode 코드 포인트로 정의되어 있는 경우 하위 서로게이트에서 계속하며 상위 서로게이트에 갖춰진코드 단위의 한 쌍은 한 쌍의 서로게이트에서 표시되어 단일 코드 포인트로써 처리되어야 하지만, 독립한 서로게이트는 서로게이트의 값을 가진 단일 코드 포인트로써 각각 취급되어야 합니다.[UNICODE]
이 스펙에 있어서 용어 문자는 Unicode 문자의 자격이 되지 않는 경우 용어 Unicode코드 포인트와 같은 의미입니다.
용어 Unicode 문자는 Unicode 스칼라 값(즉 서로게이트 코드포인트가 아닌 임의의 Unicode 코드 포인트)를 의미하는 데 사용합니다.[UNICODE]
문자열의 코드 유닛 길이는 그 문자열의 코드 유닛 갯수입니다.
이러한 복잡성은, Unicode 문자 관점보다 16비트(UTF-16)코드 유닛 관점에서 DOM API를 정의하기 위한 역사적인 결정에 유래합니다.
이 스펙 문서에 있어서, 모든 그림, 예시, 주의는 표준에 준하는 내용이 아니며, 표준에 준하지 않는다는 내용을 명시하고 있습니다. 그 외의 모든 것은 표준에 준합니다.
이 문서의 스펙 섹션에 있어서 키워드 "MUST"、"MUST NOT"、"REQUIRED"、"SHOULD"、"SHOULD NOT"、"MAY"、"OPTIONAL"은 RFC 2119에서 표현하는 바 그대로 해석하면 됩니다. 이 문서의 스펙 섹션에서 키워드 "OPTIONALLY"은 "MAY" 혹은 "OPTIONAL"로써 같은 의미로 해석됩니다. 가독성을 높이기 위해 이런 단어들은 대문자로만 표기합니다.[RFC2119]
유저 에이전트가 이 스펙을 확장하여 벤더 고유의 속성을 추가하는 걸 매우 권장하지 않습니다. 이는 특정 유저 에이전트의 유저만 해당 콘텐츠에 접근할 수 있도록 하기 때문에, 상호운용성을 감소시켜 유저 베이스를 분단하기 때문에 문서는 그러한 확장을 해선 안됩니다.
이 스펙에서 벤더 중립의 확장이 필요한 경우 이 스펙을 상황에 따라 갱신할 수도 있으며, 확장 스펙이 이 스펙의 요구 사항을 재정의할 수도 있습니다. 이 스펙에서 활동하는 사람이, 그런 확장 스펙의 요건을 승인하기로 결정하면 확장 스펙은 적용 가능한 스펙이 됩니다.
문서에 대한 적합용어는 적용 가능한 스펙에 따라 도입되는 변경점의 성질 및 콘텐츠와 의도 된 문서의 해석에 의존합니다. 적용 가능한 스펙은 새로운 문서 콘텐츠 (예를 들면 footer 요소)를 정의해도 좋고, 특정한 것 외의 적합 콘텐츠를 금지하는 것(예를 들어 <TABLE> 사용을 금지한다), 이 스펙에서 정의된 콘텐츠에 대한 시맨틱, DOM 변환 또는 처리규칙을 변경해도 좋다. 문서가 적용 가능한 스펙의 용도에 의존하지 않는 적합 HTML5 문서인지 아닌지 : 주어진 적합 HTML5 문서의 구문 및 시멘틱이 적용 가능한 스펙의 사용으로 인해 변경되지 않는 경우 그 문서는 적합 HTML5 문서인채로 유지됩니다. 주어진 (다른 적합)문서의 시맨틱 혹은 처리가 적용 가능한 스펙의 사용에 의해 변경되는 경우 그는 적합 HTML5 문서가 아닙니다. 이런 경우 적용 가능한 스펙은 적합 용어를 정의해야만 합니다.
제안되었지만 필수는 아닌 관습으로써, 그런 스펙은 "적합 HTML5 + XXX문서" 같은 적합용어를 정의할 수도 있습니다. 여기서 XXX는 적용 가능한 스펙에 대한 짧은 이름입니다.(예:"적합 HTML5 + 자동 확장 문서")。
위에서 결정한 규칙의 결과로 일부 문법이 정확한 HTML5 문서가 적용 가능한 기술 아래에서 적합 HTML5 문서가 아닐 수도 있습니다. (예: 적용 가능한 스펙이 한 묶음처럼 정의하는 <table>를 정의한다- 비록 요소가 HTML5 문법을 제대로 준수해도, 그 스펙에 쓰인 <table> 요소를 포함한 문법은 적합 HTML5 문서가 아닙니다)
대소문자 구분에 있어 두 문자열을 비교하는 건 정확한 코드 포인트를 비교하는 데 의미가 있습니다.
ASCII 대소문자 구분에 있어 두 문자열을 비교하는 방법은 코드 포인트채로 정확히 비교하는 것을 의미하며, U+0041부터 U+005A까지의 범위(즉 LATIN CAPITAL LETTER A부터 LATIN CAPITAL LETTER Z까지)를 제외하고 U+0061부터 U+007A까지 범위(즉 LATIN SMALL LETTER A부터 LATIN SMALL LETTER Z까지)에 일치하는 것으로 간주합니다.
호환 대소문자 구분에서 두 문자열을 비교하는 방법은 언어 고유의 수정(trailoring) 없이, 두 문자열을 비교하기 위해 Unicode 호환성 대소문자 비구분 일치 작업을 사용하는걸 의미 합니다.[UNICODE]
명확히 써져있는 경우를 제외하고 문자열 비교는 대소문자 구분 방법이 아닙니다.
pattern이 s 미만인 pattern 길이에서 s를 버렸지만 서로 매치하고있는 두가지 문자열인 경우 문자열의 pattern은 문자열 s와 prefix match합니다.
날짜나 숫자 등, HTML에는 특정 데이터 타입을 받는 여러 부분이 있습니다. 이 절에서는, 이런 타입의 적합 기준이 무엇인지, 그리고 어떻게 해석해야 하는 지 설명합니다.
이 스펙의 용도에 있어 공백 문자는 U+0020 SPACE、"tab"(U+0009)、"LF"(U+000A)、"FF"(U+000C)、"CR"(U+000D)입니다.
white space는 Unicode의 PropList.txt
데이터 파일에서 Unicode 프로퍼티 "White_Space"를 가지는 것입니다.[UNICODE]
Unicode.txt
데이터 파일에서 "Bidi_Class" 프로퍼티의 "White_Space"값("WS"라 생략되기도 함)과 혼동하지 마십시오.
제어 문자에서는 Unicode의 UnicodeData.txt
데이터파일에서 Unicode의 "White_Space" 프로퍼티를 가지는 것입니다.[UNICODE]
대문자 ASCII 문자는 범위 대문자 ASCII 문자 내의 문자입니다.
소문자 ASCII 문자는 범위 소문자 ASCII 문자 내의 문자입니다.
ASCII 숫자는 ASCII 숫자 범위의 문자입니다.
알파뉴메릭 ASCII 문자는 대문자 ASCII 문자、소문자 ASCII 문자, 또는 ASCII 숫자 중 하나입니다.
ASCII 16진수는 ASCII 숫자、U+0041 LATIN CAPITAL LETTER A부터 U+0046 LATIN CAPITAL LETTER F까지 및 U+0061 LATIN SMALL LETTER A부터 U+0066 LATIN SMALL LETTER F 범위 내의 문자입니다.
대문자 ASCII 16진수는 ASCII 숫자 및 U+0041 LATIN CAPITAL LETTER A부터 U+0046 LATIN CAPITAL LETTER F 안에서의 문자입니다.
소문자 ASCII 16진수는 ASCII 숫자 및 U+0061 LATIN SMALL LETTER A부터 U+0066 LATIN SMALL LETTER F 안에서의 문자입니다.
몇 속성은 boolean 속성입니다. 요소에서의 boolean 속성이 존재하는 건 true를 의미하고, 존재하지 않는 건 false를 나타냅니다.
속성이 존재하는 경우, 값의 맨 처음, 혹은 맨 뒤에 공백 없이, 빈 문자열 혹은 속성의 정규명에서ASCII 대소문자 비구분으로 매치하는 값이어야만 합니다.
값 "true" 및 "false"는 boolean 속성에서 사용할 수 없습니다. false를 나타내기 위해 속성을 완전히 제거해야할 필요가 있습니다.
checked 및 disabled 되어있는 체크박스의 예를 표현합니다.checked
및 disabled
속성은 boolean 속성입니다.
<label><input type=checkbox checked name=cheese disabled> Cheese</label>
이는 아래와 같이 써있는 것과 동일합니다 :
<label><input type=checkbox checked=checked name=cheese disabled=disabled> Cheese</label>
스타일을 섞는 것도 가능합니다. 아래 예제는 여전히 동일합니다 :
<label><input type='checkbox' checked name=cheese disabled=""> Cheese</label>
일부 속성은 제한이 있는 키워드 중 하나를 얻도록 정의되어있습니다. 이러한 속성은 열거 속성이라 불립니다. 키워드는, 특정 상태에 매치하여 정의되어 있습니다. (일부 키워드가 서로 일치하는 뜻을 가지는 단어일 경우, 여러 키워드는 동일한 키워드로 사용할 수 있습니다. 더해서, 일부 키워드는 부적합하다고 말할 수 있습니다. 이는 역사적인 이유로 남아있는 스펙입니다). 또한 두개의 디폴트 상태를 가질 수 있습니다. 1개는 유효하지 않은 기본 값이며, 또 다른 하나는 누락된 기본 값입니다.
열거 속성이 지정된 경우, 속성값은, 앞 뒤에 공백 없이, 적합하게 주어진 키워드 중 하나를 ASCII 대소문자 비구분과 일치해야 합니다.
속성이 정의될 때 그 값이 지정된 키워드 중 하나이며 ASCII 대소문자 비구분과 일치하는 경우, 속성 키워드 상태는 속성이 나타내는 상태입니다. 속성값이 지정된 키워드와 일치하지 않지만, 속성이 유효하지 않은 기본값을 가질 경우, 그 속성은 그 상태를 나타냅니다. 그렇지 않을 경우 속성값이 키워드의 어느 것과 일치하지 않지만 누락된 기본값 상태를 정의한 경우, 그는 속성에 의해 표현되는 상태입니다. 그렇지 않을 경우, 기본값은 존재하지 않고 아무것도 표현하지 않는 상태를 의미하는 유효하지 않은 값입니다.
공백 문자열은 유효한 키워드가 될 수 있습니다.
문자열이 하나 이상의 ASCII 숫자, 임의의 접두사 "-"(U+002D)문자를 가지는 경우, 문자열은 유효한 정수입니다.
접두사 "-"(U+002D)가 없는 유효한 정수는 10진수를 표현합니다. 접두사 "-"(U+002D)가 있는 유효한 정수는 U+002D HYPHEN-MINUS에서 이어지는 10신주를 나타내며, 0부터 감소합니다.
하나 이상의 ASCII숫자에서 시작하는 경우 문자열은 유효한 양의 정수입니다.
유효한 양의 정수는 10진수로 수를 나타냅니다.
아래와 같은 경우, 문자열은 유효한 부동소수점입니다:
유효한 부동소수점은, 10의 제곱에 의한 가수의 곱셈에 의해 이루어집니다. 여기서 곱셈은 최초의 수이며, 10진수로 해석됩니다. (만약 소수점 및 소수점 뒤의 숫자를 포함한 문자열 전체가 "-"(U+002D)문자로 시작하거나 숫자 값이 0이 아닌 경우, 음수로 가수를 해석합니다) 또 여기서 만약 존재한다면, 가수는 E 뒤의 숫자입니다(E와 숫자와 숫자 사이에 "-"(U+002D) 문자가 있는 경우, 음수로 해석되며, 숫자가 0이 아닌, 또는 그 외 E와 숫자 사이에 "+"(U+002B) 문자가 존재하는 경우 무시 가능합니다). E가 존재하지 않는 경우, 지수는 0으로 인식됩니다.
무한대 및 비수(NaN)값은 유효한 부동소수점이 아닙니다.
유효한 정수 목록은 U+002C COMMA 문자로 구분된 다수의 유효한 정수이며, 다른 문자를 가지지 않습니다(예를 들어 공백 문자도 없습니다). 거기에 주어진 정수의 값, 또는 계산된 값의 범위에 제한이 있을 수도 있습니다.
아래 알고리즘에서 년year의 월month의 일수는 : month가 1、3、5、7、8、10、12이라면 31입니다. month가 4、6、9、11이라면 30입니다.month가 2이며year가 400으로 나뉘는 경우, 혹은 year가 4로 놔뉘지만 100으로 나뉘지 않는 경우라면 29이며, 그렇지 않다면 28입니다. 이는 그레고리우스력의 윤년을 고려한 것입니다.[GREGORIAN]
ASCII 숫자가 이 절에서 정의하는 일자 및 시각 문자에서 사용하는 경우 이는 10진수로 표현됩니다.
이 스펙이 proleptic 그레고리우스력 달력을 참조하는 경우, 이는 1년을 거슬러 삽입된 현대 그레고리우스력을 의미합니다. proleptic 그레고리오 날짜로써 명시적으로 참조되는 proleptic 그레고리우스 달력에서 날짜는, 달력이 문제의 시간(또는 장소)에서 사용되지 않는다 하더라도 그 달력을 이용해서 설명합니다. [GREGORIAN]
이 스펙에 있어 와이어 형식의 그레고리우스력 사용은 결정에 관련된 사람달의 문화적인 편견에 의한 자의적인 선택입니다. 폼의 날짜, 시간, 숫자 형식 및 time
요소의 논의 절을 참고하시길 바랍니다.
월은 타임존 정보 및 연, 월을 넘긴 날짜를 갖지 않는 특정 proleptic 그레고리우스 날짜를 갖춥니다.[GREGORIAN]
주어진 순서를 따라 다음 구성요소로 이루어진 경우 문자열은 연year및 월month로 표시되는 유효한 월 문자열입니다:
날짜는 연월일로 시작하는 타임존 정보를 가지지 않는 특정한 proleptic 그레고리우스력 날짜로부터 시작합니다.[GREGORIAN]
주어진 순서를 따라 다음 구성요소로 이루어진 경우 문자열은 연year, 월month, 일dayで로 표시되는 유효한 날짜 문자열입니다:
연 없는 날짜는 그레고리우스 월과 그 월의 날로 이루어지지만, 연을 포함하지 않습니다.[GREGORIAN]
주어진 순서를 따라 다음 구성요소로 이루어진 경우 문자열은 월month 및 일day로 표현하는 유효한 월 없는 날짜입니다:
즉 2월을 의미하는 month가 "02
"인 경우, 그 해를 윤년인 것 처럼 일이 29여도 괜찮습니다.
시간은 시, 분, 초, 초 이하로 이루어지는 타임존 정보를 가지지 않는 특정 시간을 의미합니다.
주어진 순서를 따라 다음 구성요소로 이루어진 경우 문자열은 시hour, 분minute, 초second로 표현하는 유효한 시간 문자열입니다:
second 컴포넌트는 60 혹은 61이 될 수 없습니다. 윤초를 나타내는 것 또한 불가합니다.
부동 날짜 및 시간은 년, 월, 일, 시, 분, 초, 초 이하로 이루어지는 특정 그레고리우스 력으로 이루어지지만 타임존 정보를 가지지 않습니다.[GREGORIAN]
주어진 순서에 따라 아래와 같은 구성요소를 가지는 경우, 문자열은 유효한 부동 날짜 및 시간입니다 :
주어진 순서에 따라 아래와 같은 구성요소를 가지는 경우, 문자열은 유효한 규격화 부동 날짜 및 시간 문자열입니다 :
타임존 오프셋은 부호 있는 시간과 분 숫자로 구성됩니다.
다음 중 하나를 나타내는 경우 문자열은 타임존 오프셋을 나타내는 유효한 타임존 오프셋 문자열입니다 :
타임존이 UTC인 경우 "Z"(U+005A)문자
또는 주어진 순서에서 아래 구성 요소:
이 형식은 -23:59부터 +23:59까지의 타임존 오프셋을 허가합니다. 그러나 실제 타임존 오프셋 범위는 -12:00부터 +14:00까지며, 실제로 타임존 오프셋의 분 컴포넌트는 항상 00、30 혹은 45 중 하나입니다. 그러나 영원히 유지된다는 보장이 없으며, 타임존은 국가에 따라 마음대로 변경되어 표준을 따르지 않습니다.
공식적인 타임존 형식 이전에 작성된 역사적 시대 타임존 오프셋을 사용하는 데에 대한 자세한 내용은 아래 글로벌 날짜 및 시간 절에 있는 사용상의 주의와 예시를 참고하시길 바랍니다.
グローバル日付および時刻は、符号付き時分からなるタイムゾーンオフセットとともに年、月、日、時、分、秒、秒以下からなる特定先発グレコリオ暦で構成する。[GREGORIAN]
与えられた順で以下のコンポーネントからなる場合、日付、時刻、タイムゾーンオフセットを表す文字列は妥当なグローバル日付および時刻である:
20世紀半ばにUTCを形成する前の日付の時刻は、UTC(UT1の近似がSI秒を刻む)ではなく、UT1(0°経度での現代の地球太陽時)の見地から表現および解釈されなければならない。タイムゾーンを形成する前の時刻は、適切なローカル時刻とロンドンのグリニッジで観測された時間との間のおおよその現代的な違いのある明示的なタイムゾーンとともにUT1の時間として表現および解釈されなければならない。
以下は妥当なグローバル日付および時刻として記述される例の一部である。
0037-12-13 00:00Z
"1979-10-14T12:00:00.001-04:00
"8592-01-01T02:09+02:09
"数点の以下の日付に関して顕著である:
T
"が空白に置換される場合、単一の空白文字でなければならない。文字列"2001-12-21 12:00Z
"(コンポーネントの間に2つの空白)はうまく解釈されないだろう。ゾーンオフセットは、完全なタイムゾーンの仕様ではない。現実の日付と時刻の値を操作する場合、できればIANAのタイムゾーンIDを使用して、タイムゾーンごとに個別のフィールドの使用を検討すること。[TIMEZONES]
与えられた順で以下のコンポーネントから構成される場合、日付、時刻、タイムゾーンオフセットを表す文字列は妥当なUTCに正規化されたグローバル日付および時刻である:
週は、週番号年と週番号からなる。週番号は、月曜日から始まる7日間を示す。以下の定義に従って、このカレンダーシステムにおける週番号年は52または53の7日間を持つ。グレゴリオ暦の日付で1969年12月29日(1969-12-29)月曜日で始まる7日間は、1970週番号年で週番号1として定義される。連続した週は連番が付けられる。週番号年で1週目の前の週は、前の週番号年の最終週である。逆もまた同様である。[GREGORIAN]
最初の日(1月1日)が木曜である先発グレコリオ暦の年year、または最初の日(1月1日)が木曜である先発グレコリオ暦の年yearのいずれかに対応する場合、数字yearとともに週番号年は53週を持つ。ここで、yearは400で割り切れる数字、または4で割り切れるが100で割り切れない数字である。他のすべての週番号年は52週である。
53週をもつ週番号年の最終日の週番号は53であり、52週をもつ週番号年の最終日の週番号は52である。
特定の日の週番号年の数は、先発グレゴリオ暦で、その日を含む年の数と異なる場合がある。週番号年yでの最初の週は、グレコリオ年yの最初の木曜を含む週である。
現代の用途に対して、ここで定義される週は、ISO 8601で定義されるようなISO週に相当する。[ISO8601]
与えられた順で以下のコンポーネントからなる場合、文字列は、週番号年yearおよび週weekを表す妥当な週文字列である:
継続時間は 複数秒からなる。
月と秒は同等ではない(1か月は正確な秒数ではなく、その正確な長さは、測定された正確な1日に依存する期間である)ので、この仕様で定義される継続時間は月を含めることはできない (すなわち年は12ヶ月と等価である)。特定の秒数を記述する継続時間のみが記述可能である。
以下のいずれかからなる場合、文字列は、継続時間tで表す妥当な継続時間文字列である:
与えられた順でリテラルにU+0050 LATIN CAPITAL LETTER P文字の後に以下のサブコンポーネントが続く。 ここで日、時、分および秒数はtとして同じ秒数に対応する:
U+0044 LATIN CAPITAL LETTER D文字の後に続く、日数を表す1つ以上のASCII数字。
与えられた順で、U+0054 LATIN CAPITAL LETTER T文字の後に以下のサブコンポーネントが続く:
この、この仕様で定義される他の日付および時刻依存のマイクロ構文は、ISO 8601で定義される形式の1つに基づく。[ISO8601]
任意の順で、それぞれ異なる継続時間時刻コンポーネントのスケールを伴う、1つ以上の継続時間コンポーネント。秒数tと等価である秒数で表される合計。
継続時間時刻コンポーネントは以下のコンポーネントからなる文字列である:
0個以上の空白文字。
秒数を表現するために指定された継続時間時刻コンポーネントスケール(下記参照)でスケールされる時刻単位数で表す、1つ以上のASCII数字。
指定された継続時間時刻コンポーネントスケールが1(すなわち単位が秒)の場合、任意で、"."(U+002E)文字の後に続く秒以下を表す1、2、または3つのASCII数字。
0個以上の空白文字。
継続時間時刻コンポーネントの数字部で用いられる時刻単位の継続時間時刻コンポーネントスケールを表す、以下の文字の1つ:
0個以上の空白文字。
これはISO 8601での形式のいずれにも基づかない。ISO 8601継続時間形式の代わりに、より人間に読みやすくすることを意図する。
以下のいずれかである場合、文字列は任意の時刻を持つ妥当な日付文字列である:
単純色は、sRGB色空間の中で各色のコンポーネント赤、緑、青を表す、0から255までの範囲の8ビット数字3つからなる。[SRGB]
正確に7文字長である、最初の文字が"#"(U+0023)文字であり、残りの6文字がすべてASCII16進数字である、最初の2桁は赤コンポーネントを表し、中の2桁は緑コンポーネントを表し、最後の2桁は青コンポーネントを表す16進数である場合、文字列は妥当な単純色である。
妥当な単純色でかつU+0041 LATIN CAPITAL LETTER AからU+0046 LATIN CAPITAL LETTER Fまでの範囲の文字を一切使用しない場合、文字列は妥当な小文字の単純色である。
空白区切りトークンの組は、1つ以上の空白文字によって区切られた0個以上の単語(トークンとして知られる)を含む文字列である。ここで、単語は1つ以上の文字を含み、空白文字を含まない。
空白区切りトークンの組を構成する文字列は、先頭または末尾に空白文字を持ってもよい。
順序なし固有空白区切りトークンの組は、繰り返しトークンのない空白区切りトークンの組である。
順序あり固有空白区切りトークンの組は、繰り返しトークンはないが、トークンの順序が意味のある空白区切りトークンの組である。
空白区切りトークンの組は時折定義された許可される値の組を持つ。許可された値の組が定義される場合、トークンはすべて許可される値のリストでなければならない。その他の値は不適合である。そのような許可される値の組が用意されない場合、すべての値は適合である。
空白区切りトークンの組のトークンがどのように比較されるか(たとえば、大文字小文字を区別するかどうか)は、セットごとに定義される。
コンマ区切りトークンの組は、それぞれ単一の","(U+002C)文字で区切られる0個以上のトークンを含む文字列である。ここでトークンは0個以上の任意の文字列からなり、先頭も末尾も空白文字でなく、","(U+002C)文字を含まず、任意で空白文字に囲まれるものである。
たとえば、文字列" a ,b,,d d
"は4つのトークンからなる。"a"、"b"、空文字列および"d d"。各トークンの周りの先頭と末尾の空白はトークンの一部としてカウントされず、空文字列はトークンであるかもしれない。
コンマ区切りトークンの組は時に妥当なトークンを構成するさらなる制約を持つ。そのような制限が定義される場合、トークンはすべてその制限に収まるようにしなければならない。その他の値は不適合である。そのような制限が指定されない場合、すべての値は適合である。
タイプtype要素に対して妥当なハッシュ名参照は、"#"(U+0023)文字の後に文書でタイプtypeをもつ要素のname
属性値に正確に一致する文字列からなる文字列である。
メディアクエリ仕様のmedia_query_list
生成物に一致する場合、文字列は妥当なメディアクエリである。[MQ]
空文字列、空白文字のみからなる文字列、またはメディアクエリ仕様で与えられる定義に従ったユーザー環境にマッチするメディアクエリの場合、文字列はユーザー環境に一致する。[MQ]
URL標準でオーサリング適合性要件に準拠する場合、URLは妥当なURLである。[URL]
妥当なURLだが空文字列でない場合、文字列は妥当な空でないURLである。
先頭と末尾の空白文字を取り除いたあとに妥当なURLである場合、文字列は潜在的にスペースで囲まれた妥当なURLである。
先頭と末尾の空白文字を取り除いたあとに、妥当な空でないURLである場合、文字列は潜在的にスペースで囲まれた妥当な空でないURLである。
この仕様は、たとえ解決不可能でも、XMLツールの互換性のために必要な場合、HTML文書のDOCTYPEで用いるためのabout:
URL予約としてURL about:legacy-compat
を定義する。[ABOUT]
この仕様は、たとえ解決不可能でも、iframe
srcdoc
文書の文書のアドレスとして用いられるabout:
URLを予約としてURL about:srcdoc
を定義する。[ABOUT]
Document
オブジェクトのフォールバック基底URLは、以下のサブステップを実行して得られる絶対URLである:
Document
がiframe
srcdoc
文書である場合、Document
のブラウジングコンテキストがもつブラウジングコンテキストコンテナのDocument
に属する文書基底URLを返し、これらの手順を中止する。
文書のアドレスがabout:blank
であり、かつDocument
のブラウジングコンテキストがクリエーターブラウジングコンテキストを持つ場合、クリエーターDocument
の文書基底URLを返し、これらの手順を中止する。
文書のアドレスを返す。
Document
オブジェクトの文書基底URLは、以下のサブステップを実行して得られる絶対URLである:
Document
にhref
属性を持つbase
要素が存在しない場合、文書基底URLはDocument
のフォールバック基底URLであり、これらの手順を中止する。
そうでなければ、文書基底URLはツリー順で、href
属性を持つDocument
で最初のbase
要素の凍結基底URLである。
CORS設定属性は、列挙属性である。次の表は、キーワードと属性の状態を示す。1列目のキーワードは、キーワードと同じ行で2列目のセル内の状態に対応づける。
キーワード | 状態 | 概要 |
---|---|---|
anonymous |
Anonymous | Cross-origin CORSは、省略認証情報フラグ設定を持つ要素を要求する。 |
use-credentials |
Use Credentials | Cross-origin CORSは、省略認証情報フラグ設定を持たない要素を要求する。 |
空文字列も妥当なキーワードであり、匿名状態に対応づける。属性の妥当でない値のデフォルトは、匿名状態である。反射のために、匿名状態の正規ケースはanonymous
キーワードである。属性が省略された場合に用いられる、欠落した値のデフォルトは、No CORS状態である。
一部のIDL属性は、特定のコンテンツ属性の反映を定義する。これは、IDL属性がコンテンツ属性の現在値を返し、IDL属性が与えられた値にコンテンツ属性の値を変更することを意味する。
HTMLAllCollection
、HTMLFormControlsCollection
、HTMLOptionsCollection
インターフェースは、HTMLCollection
インターフェースから派生するコレクションである。
HTMLAllCollection
インターフェースは、複数の一致する要素が存在する場合、インターフェースのnamedItem()
メソッドがHTMLCollection
オブジェクトを返す例外、およびインターフェースのitem()
メソッドがそのnamedItem()
メソッドと同義に用いられる例外とともに、ちょうどHTMLCollection
のような要素の汎用コレクションに使用される。これはレガシーdocument.all
属性のみを意図する。
interface HTMLAllCollection : HTMLCollection {
// inherits length and item(unsigned long index)
(HTMLCollection or Element)? item(DOMString name);
legacycaller getter (HTMLCollection or Element)? namedItem(DOMString name); // shadows inherited namedItem()
HTMLAllCollection tags(DOMString tagName);
};
length
コレクションの要素数を返す。
item
(index)コレクションからのインデックスindexとともにアイテムを返す。アイテムはツリー順にソートされる。
item
(name)item
(name)namedItem
(name)namedItem
(name)コレクションからのIDまたは名前nameとともにアイテムを返す。
複数のマッチするアイテムが存在する場合、それらの要素すべてを含むHTMLCollection
オブジェクトが返される。
ただしa
、applet
、area
、embed
、form
、frame
、frameset
、iframe
、img
、およびobject
要素はこのメソッドのために名前を持ってもよい。それらの名前はname
属性値によって与えられる。
tags
(tagName)指定されたタグ名を持つ要素のみを含む、現在のコレクションのフィルタリングされた表示であるコレクションを返す。
HTMLFormControlsCollection
インターフェースは、form
とfieldset
要素で記載要素のコレクションに使用される。
interface HTMLFormControlsCollection : HTMLCollection {
// inherits length and item()
legacycaller getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
};
interface RadioNodeList : NodeList {
attribute DOMString value;
};
length
コレクションの要素数を返す。
item
(index)コレクションからのインデックスindexとともにアイテムを返す。アイテムはツリー順にソートされる。
namedItem
(name)namedItem
(name)コレクションからのIDまたはname
nameとともにアイテムを返す。
複数のマッチするアイテムが存在する場合、それらの要素すべてを含むRadioNodeList
オブジェクトが返される。
オブジェクトによって表される最初にチェックされたラジオボタンの値を返す。
設定される場合、オブジェクトによって表される与えられた値を持つ最初のラジオボタンをチェックする。
HTMLOptionsCollection
インターフェースは、option
要素のコレクションに使用される。常にselect
要素がルートであり、要素の子孫をコントロールする属性およびメソッドを持つ。
interface HTMLOptionsCollection : HTMLCollection { // inherits item() attribute unsigned long length; // shadows inherited length legacycaller HTMLOptionElement? (DOMString name); setter creator void (unsigned long index, HTMLOptionElement? option); void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); void remove(long index); attribute long selectedIndex; };
length
[ = value ]コレクションの要素数を返す。
より小さい数に設定する場合、対応するコンテナ内のoption
要素数は切り捨てられる。
より大きい数に設定する場合、そのコンテナに新しい空白のoption
要素を追加する。
item
(index)コレクションからのインデックスindexとともにアイテムを返す。アイテムはツリー順にソートされる。
namedItem
(name)namedItem
(name)コレクションからのIDまたはname
nameとともにアイテムを返す。
複数のマッチするアイテムが存在する場合、最初のものが返される。
add
(element [, before ] )beforeによって与えられるノードの前の要素を挿入する。
before引数は数字でもよく、その場合elementはその数字をもつアイテムの前に挿入され、またはコレクションからの要素でもよい。その場合elementはその要素の前に挿入される。
beforeが省略された、null、または範囲外の数字の場合、elementはリストの最後に加えられるだろう。
要素に挿入された要素が親要素の場合、このメソッドはHierarchyRequestError
例外を投げるだろう。
selectedIndex
[ = value ]もしあるならば、最初に選ばれたアイテムのインデックスを、または選択したアイテムが存在しない場合−1を返す。
選択を変更する設定が可能である。
DOMStringMap
インターフェースは、名前と値のペアの組を表す。これは、プロパティーのアクセスのためにスクリプト言語のネイティヴメカニズムを使用して、ペアの組を公開する。
要素のdataset
属性は、要素のdata-*
属性を公開する。
類似の構造とともに以下の引数および要素が与えられるとする:
<img class="tower" id="tower5" data-x="12" data-y="5" data-ai="robotarget" data-hp="46" data-ability="flames" src="towers/rocket.png alt="Rocket Tower">
1つは関数splashDamage()
がいくつかの引数を取ることが考えられ、第1引数は処理する要素となる:
function splashDamage(node, x, y, damage) { if (node.classList.contains('tower') && // checking the 'class' attribute node.dataset.x == x && // reading the 'data-x' attribute node.dataset.y == y) { // reading the 'data-y' attribute var hp = parseInt(node.dataset.hp); // reading the 'data-hp' attribute hp = hp - damage; if (hp < 0) { hp = 0; node.dataset.ai = 'dead'; // setting the 'data-ai' attribute delete node.dataset.ability; // removing the 'data-ability' attribute } node.dataset.hp = hp; // setting the 'data-hp' attribute } }
一部のオブジェクトは、ある操作でコピーおよびクローズされることをサポートする。これはオブジェクトを譲渡可能と呼び、特に共有不可の所有権またはワーカーの境界を越えて高価なリソースを移転することに使用される。
以下はTransferable
型である:
次のコールバック関数型は、File
オブジェクトと対話するさまざまなAPIで使用される:
callback FileCallback = void (File file);
HTML名前空間はhttp://www.w3.org/1999/xhtml
である。
MathML名前空間はhttp://www.w3.org/1998/Math/MathML
である。
SVG名前空間はhttp://www.w3.org/2000/svg
である。
XLink名前空間はhttp://www.w3.org/1999/xlink
である。
XML名前空間はhttp://www.w3.org/XML/1998/namespace
である。
XMLNS名前空間はhttp://www.w3.org/2000/xmlns/
である。
データマイニングツールおよび、スクリプトを実行、CSSやXPathを評価、または別の方法で任意のコンテンツにDOMの結果を公開することなく、コンテンツに対する操作を実行するユーザーエージェントは、それらのDOMノードの類似体が実際に上記の文字列を公開することなく、特定の名前空間であることを相応の主張することによって"名前空間をサポート"してもよい。
HTML構文において、名前空間接頭辞および名前空間宣言は、XMLと同一の効果を持たない。たとえば、HTML要素名においてコロンは特別な意味を持たない。