HTML 요소

**HTML 요소** 또는 **HTML 엘리먼트**(HTML element)는 HTML (하이퍼텍스트 마크업 언어) 문서 구성 요소의 한 유형으로, 여러 HTML 노드 유형 중 하나이다(일반적인 노드 유형으로는 문서, 문서 단편, 속성 노드 등이 있다). 최초로 사용된 HTML 버전은 1993년 팀 버너스리에 의해 작성되었으며 그 이후로 많은 HTML 버전이 등장했다. 현재의 사실상 표준은 산업 단체인 WHATWG가 관리하며 HTML Living Standard로 알려져 있다.

HTML 문서는 텍스트 노드와 같은 단순한 HTML 노드들과 문서의 부분에 의미론과 서식을 추가하는 HTML 요소들의 트리로 구성된다(예: 텍스트를 굵게 만들기, 단락·목록·표로 조직하기, 하이퍼링크와 영상을 삽입하기 등). 각 요소에는 HTML 속성을 지정할 수 있다. 요소는 다른 요소와 텍스트를 포함한 콘텐츠를 가질 수도 있다.

## 개념
섬네일|class=skin-invert-image|alt=Euler diagram of HTML element content categories.|HTML 요소 콘텐츠 카테고리

### 요소와 태그의 차이
일반적으로 이해되는 바와 같이, 요소의 위치는 시작 태그에서 시작하여 종료 태그로 끝나는 범위로 표시된다. 이는 HTML 문서 내의 많은 요소에 해당하지만 모든 요소가 그런 것은 아니다. HTML 4.01 사양에서는 이 차이를 명시적으로 강조한다.

마찬가지로 W3C 권고안 HTML 5.1 2판에서도 다음과 같이 명시하고 있다.

그리고 다음과 같이 덧붙인다.

HTML(HTML5 이전)은 SGML을 기반으로 하므로, 구문 분석 또한 문서 형식 정의(DTD), 구체적으로는 HTML DTD(예: HTML 4.01)에 의존한다. DTD는 어떤 요소 유형이 가능한지(즉, 요소 유형의 집합을 정의함)와 문서에서 나타날 수 있는 유효한 조합을 명시한다. 오직 하나의 유효한 구조만이  경우(DTD에 따라), 특정 문서에서 이를 명시적으로 진술하는 것은 일반적으로 요구되지 않는다는 것이 일반적인 SGML의 동작이다. 간단한 예로, 단락 요소의 시작을 나타내는  태그는 끝을 나타내는  태그로 보완되어야 한다. 그러나 DTD에서 단락 요소는 중첩될 수 없다고 규정하고 있으므로, HTML 문서 단편 는 와 동일한 것으로 추론된다. (하나의 단락 요소가 다른 단락 요소를 포함할 수 없다면, 현재 열려 있는 단락은 다른 단락을 시작하기 전에 닫혀야 하기 때문이다.) 이러한 함의는 DTD와 개별 문서의 조합에 근거하기 때문에, 일반적으로 문서 태그 요소를 추론하는 것은 불가능하며 DTD에 대한 지식이 있는 SGML 또는 HTML 인식 파서를 사용해야만 가능하다. HTML5는 어떤 태그를 생략할 수 있는지 정의함으로써 유사한 결과를 만들어낸다.

### SGML 대 XML
SGML은 복잡하여 널리 이해되고 채택되는 데 한계가 있었다. XML은 더 단순한 대안으로 개발되었다. 두 가지 모두 DTD를 사용하여 지원되는 요소와 허용된 조합을 문서 구조로 지정할 수 있지만, XML 구문 분석은 더 간단하다. 태그에서 요소로의 관계는 항상 문서에 포함된 실제 태그를 파싱하는 것이며, SGML의 일부인 암시적 폐쇄는 존재하지 않는다.

현재 웹에서 사용되는 HTML은 XHTML로서 XML로 취급되거나 HTML5로 취급될 가능성이 높다. 어느 경우든 문서 태그를 문서 객체 모델(DOM) 요소로 파싱하는 것은 기존의 HTML 시스템에 비해 단순화되었다. 일단 요소의 DOM을 얻으면 인터페이스의 상위 수준에서의 동작(예: 화면 렌더링)은 동일하거나 거의 유사하다.

### <code>%block;</code> 대 박스
CSS 프레젠테이션 동작의 일부는 "박스 모델"이라는 개념이다. 이는 CSS가 CSS  선언을 통해 "블록(block)" 요소로 간주하는 요소들에 적용된다.

HTML 또한 다르지만 유사한 개념을 가지고 있으며, 이 둘은 매우 자주 혼동된다. `%block;`과 `%inline;`은 HTML DTD 내에서 요소를 "블록 수준(block-level)" 또는 "인라인(inline)"으로 그룹화하는 그룹이다. 이는 중첩 동작을 정의하는 데 사용된다. 블록 수준 요소는 인라인 컨텍스트 안에 배치될 수 없다. 이 동작은 변경할 수 없으며 DTD에 고정되어 있다. 블록 및 인라인 요소는 특정 요소 유형에 대한 박스 모델의 관련성을 포함하여 기본적으로 적절하고 상이한 CSS 동작이 연결되어 있다.

그러나 이 CSS 동작은 기본값에서 변경될 수 있으며 실제로 자주 변경된다는 점에 유의하라. 가 포함된 목록은 `%block;` 요소이며 기본적으로 블록 요소로 표시된다. 그러나 CSS를 사용하여 이를 인라인 목록으로 표시하도록 설정하는 것은 매우 흔한 일이다.

## 개요

### 구문

\mathtt{= *}\!\underbrace\mathtt{paragraph}_\mathsf{\color{White}{Attr} \atop \color{Black}Attribute\ value}*\mathtt{\color{BrickRed}>}}^\mathsf{Start\ tag}
  \overbrace\mathtt{\color{Green}This\ is\ a\ paragraph.}^\mathsf{Content}
  \overbrace\mathtt{\color{BrickRed}}^\mathsf{End \atop tag}
}^\mathsf{Element}

}}
HTML 구문에서 대부분의 요소는 시작 태그와 종료 태그로 작성되며 그 사이에 콘텐츠가 위치한다. HTML 태그는 요소의 이름과 이를 둘러싼 각괄호로 구성된다. 종료 태그는 시작 태그와 구별하기 위해 여는 각괄호 뒤에 빗금을 추가한다. 예를 들어,  요소로 표현되는 단락은 다음과 같이 작성된다.

```html
<p>HTML 구문에서 대부분의 요소는 다음과 같이 작성된다 ...</p>
```

그러나 이러한 모든 요소가 시작 태그나 종료 태그의 존재를 반드시 하는 것은 아니다. 소위 빈 요소(void elements)라 불리는 일부 요소들은 종료 태그를 가지지 않는다. 대표적인 예로  (강제 줄바꿈) 요소가 있다. 빈 요소의 동작은 미리 정의되어 있으며 콘텐츠나 다른 요소를 포함할 수 없다. 예를 들어, 주소는 다음과 같이 작성될 수 있다.

```html
<p>P. 셔먼<br>월러비 가 42<br>시드니</p>
```

XHTML을 사용할 때는 빈 요소를 포함한 모든 요소를 열고 닫아야 한다. 이는 시작 태그 바로 뒤에 종료 태그를 배치하여 수행할 수 있지만, HTML 5에서는 이것이 적법하지 않으며 두 개의 요소가 생성되는 결과를 초래한다. XHTML과 HTML 5 모두와 호환되는 빈 요소 지정의 대안적인 방법은 태그의 에 `/`를 넣는 것이다(닫는 태그의 에 붙는 `/`와 구별된다).

```html
<p>P. 셔먼<br />월러비 가 42<br />시드니</p>
```


HTML 속성은 시작 태그 안에 지정된다. 예를 들어, 준말을 나타내는  요소는 여는 태그 안에 `title` 속성을 기대한다. 이는 다음과 같이 작성된다.

```html
<abbr title="abbreviation">abbr.</abbr>
```


비공식적으로 HTML 요소는 때때로 "태그"라고 불리기도 하지만(제유의 예), 많은 이들은 태그라는 용어를 요소의 시작과 끝을 구분하는 마크업만을 지칭하는 것으로 엄격히 제한하여 사용하기를 선호한다.

요소(및 속성) 이름은 HTML에서 대문자와 소문자를 조합하여 쓸 수 있지만, XHTML에서는 반드시 소문자여야 한다. HTML 4까지는 대문자가 표준 형태였고 HTML 사양에서도 사용되었으나, 최근에는 소문자가 더 흔하게 사용된다.

#### 요소의 유형
HTML 요소에는 일반 요소, 원시 텍스트 요소, 빈 요소의 세 가지 종류가 있다.

***'(Normal elements)는 대개 시작 태그와 종료 태그를 모두 가지지만, 일부 요소는 종료 태그 또는 두 태그 모두를 생략할 수 있다. 다음과 같은 방식으로 구성된다.
* 임의의 수의 [[HTML 속성]]을 포함할 수 있는 요소의 시작을 알리는 시작 태그 ()
* 텍스트와 다른 요소를 포함하는 일정량의 콘텐츠
* 요소 이름 앞에 [[빗금]]이 붙는 종료 태그: 

***'(Raw text elements, 또는 텍스트 전용 요소)는 다음과 같이 구성된다.
* 임의의 수의 HTML 속성을 포함할 수 있는 요소의 시작을 알리는 시작 태그 ( 형태)
* 일정량의 텍스트 콘텐츠(해당 종료 태그를 제외한 모든 태그는 콘텐츠로 해석됨), 요소는 포함될 수 없음
* 요소 이름 앞에 빗금이 붙는 종료 태그: . 일부 HTML 버전에서 특정 요소의 종료 태그는 선택 사항이지만, XHTML에서는 필수이다.
대표적인 예로  요소가 있는데, 이 요소는 다른 요소(텍스트 마크업 포함)를 포함해서는 안 되며 오직  텍스트만 포함해야 한다.

****(Void elements, 또는 비어 있는 요소, 단일 요소, 자립형 요소)는 오직 HTML 속성을 포함하는 시작 태그( 형태)만을 가진다. 텍스트나 다른 요소와 같은 자식 요소를 포함할 수 없다. XHTML과의 호환성을 위해 HTML 사양에서는 선택적인 공백과 빗금을 허용한다(는 허용됨). 빗금은 XHTML 및 기타 XML 애플리케이션에서 필수이다. 흔히 사용되는 두 가지 빈 요소는 (시나 주소 등에서의 강제 줄바꿈)와 (주제 분리)이다. 외부 파일을 참조하는 플레이스홀더 요소들도 종종 빈 요소이며, 영상() 요소가 그 예이다. 요소에 포함된 속성은 해당 외부 파일을 가리킨다. 빈 요소의 또 다른 예는 이며 구문은 다음과 같다.

```html
<link rel="stylesheet" href="fancy.css" type="text/css">
```

이  요소는 사용자에게 HTML 문서를 표시할 때 사용할 스타일 시트를 브라우저에 알려준다. HTML 구문에서 속성값이 문자, 숫자, 하이픈, 마침표로만 구성된 경우 따옴표를 생략할 수 있다. 반면 XML 구문(XHTML)을 사용할 때는 모든 속성값에 따옴표를 붙여야 하며 마지막 각괄호 앞에 공백이 포함된 빗금을 넣어야 한다.

```html
<link rel="stylesheet" href="fancy.css" type="text/css" />
```


#### 속성
**[[HTML 속성]]**은 원하는 동작을 정의하거나 추가적인 요소 특성을 나타낸다. 대부분의 속성은 값을 요구한다. HTML에서 속성값에 공백이 포함되지 않은 경우 따옴표를 생략할 수 있고(`=`), 작은따옴표나 큰따옴표를 사용할 수 있다(`=''` 또는 `=""`). XML에서는 따옴표 사용이 필수이다.

반면 불리언 속성은 값을 지정할 필요가 없다. 체크 박스의 `checked`가 그 예이다.

```html
<input type=checkbox checked>
```

하지만 XML(및 XHTML) 구문에서는 값이 필수이므로 속성 이름을 값으로 반복해서 사용해야 한다.

```xml
<input type="checkbox" checked="checked" />
```


### 요소 표준

HTML 요소는 1995년 이후 초기에는 IETF에 의해, 이후에는 W3C에 의해 발행된 일련의 자유롭게 이용 가능한 개방형 표준에 정의되어 있다.

1990년대 브라우저 전쟁 동안 사용자 에이전트(예: 웹 브라우저) 개발자들은 종종 자신만의 요소를 개발했으며, 그중 일부는 나중에 표준으로 채택되었다. 다른 사용자 에이전트는 비표준 요소를 인식하지 못하고 무시할 수 있으며, 이로 인해 페이지가 부적절하게 표시될 수도 있다.

1998년, XML(SGML의 단순화된 형태)은 누구나 자신만의 요소를 개발하고 이를 XHTML 문서에 통합하여 XML 인식 사용자 에이전트에서 사용할 수 있도록 하는 메커니즘을 도입했다.

이후 HTML 4.01은 XML 호환 형식인 XHTML 1.0 (확장 가능한 HTML)로 재작성되었다. 각각의 요소들은 동일하며, 대부분의 경우 유효한 XHTML 1.0 문서는 유효하거나 거의 유효한 HTML 4.01 문서가 된다. 이 기사는 별도의 언급이 없는 한 주로 실제 HTML에 초점을 맞추지만, XHTML에도 여전히 적용 가능하다. 두 방식 사이의 사소한 차이점에 대한 논의는 HTML을 참조하라.

### 요소 상태
HTML의 첫 번째 버전 이후 여러 요소가 구식이 되었으며, 이후 표준에서 구식화(deprecated)되거나 아예 나타나지 않게 되었다. 이 경우 해당 요소는 유효하지 않으며, 검증 사용자 에이전트에 의해 유효하지 않은 것으로 판명되거나 표시되지 않을 수 있다.

HTML 4.01 / XHTML 1.0에서 요소의 상태는 세 가지 유형의 문서 형식 정의(DTD)가 존재함에 따라 복잡해진다.
* Transitional(과도기적): 구식화된 요소를 포함하지만, 저자가 관행을 업데이트할 수 있는 과도기적 기간을 제공하기 위한 목적이다.
* Frameset(프레임셋): 저자가 프레임셋 문서를 작성할 수 있도록 허용하는 Transitional DTD의 버전이다.
* Strict(엄격): (1999년 기준) 최신 형태의 HTML이다.

대신 HTML5는 표준화된 규범 콘텐츠와 함께 구식 기능 목록을 제공한다. 이는 구현 지침이 존재하는 "구식이지만 준수하는(obsolete but conforming)" 항목과 교체되어야 하는 "비준수(non-conforming)" 항목으로 나뉜다.

첫 번째 표준(HTML 2.0)은 네 개의 구식화된 요소를 포함했으며, 그중 하나는 HTML 3.2에서 유효하지 않게 되었다. 네 개 모두 HTML 4.01 Transitional에서 유효하지 않으며, 이 버전은 추가로 10개의 요소를 구식화했다. 이 모든 요소와 추가로 2개의 요소는 HTML 4.01 Strict에서 유효하지 않다. 프레임 요소는 Transitional 및 Frameset DTD에 존재한다는 의미에서 여전히 통용되지만, 기능이 대부분 대체되었고 사용자 접근성 측면에서 문제가 많아 향후 표준에서 보존할 계획이 없다.

(엄격히 말하자면, 가장 최근의 XHTML 표준인 XHTML 1.1 (2001)은 프레임을 전혀 포함하지 않는다. 이는 XHTML 1.0 Strict와 거의 동일하지만 루비 마크업 모듈을 포함하고 있다.)

흔한 혼동의 원인은 구식화(deprecated)라는 용어를 구식 상태와 유효하지 않은(invalid) 상태, 그리고 미래에 공식적으로 구식화될 것으로 예상되는 요소들 모두를 지칭하기 위해 느슨하게 사용하는 것이다.

### 콘텐츠 대 표현 및 동작

HTML 4 이후 HTML은 콘텐츠(보이는 텍스트와 영상)를 표현(색상, 글꼴 크기, 레이아웃 등)으로부터 분리하는 데 점점 더 집중해 왔다. 이는 종종 관심사 분리라고 불린다. HTML은 문서의 구조나 콘텐츠를 나타내는 데 사용되며, 그 표현은 오직 CSS 스타일 시트의 책임으로 남는다. 기본 스타일 시트는 CSS 표준의 일부로 제안되어 HTML에 대한 기본 렌더링을 제공한다.

동작(상호작용) 또한 콘텐츠와 분리되어 유지되며 스크립트에 의해 처리된다. 영상은 텍스트와 분리된 별도의 그래픽 파일에 포함되지만, 페이지 콘텐츠의 일부로 간주될 수도 있다.

관심사의 분리를 통해 문서는 목적과 능력에 따라 서로 다른 사용자 에이전트에 의해 표시될 수 있다. 예를 들어, 사용자 에이전트는 모니터에 표시하거나, 종이에 인쇄하거나, 오디오 전용 사용자 에이전트에서 음성 특성을 결정하기 위해 적절한 스타일 시트를 선택할 수 있다. 마크업의 구조적 및 의미적 기능은 각 경우에 동일하게 유지된다.

역사적으로 사용자 에이전트가 항상 이러한 기능을 지원한 것은 아니었다. 1990년대에는 임시방편으로 표현 요소( 및  등)가 HTML에 추가되었으나, 이는 상호운용성과 사용자 접근성에 문제를 일으키는 대가를 치러야 했다. 현재 이는 구식으로 간주되며 스타일 시트 기반 디자인으로 대체되었다. 대부분의 표현 요소는 이제 구식화되었다.

외부 영상 파일은  또는  요소를 사용하여 포함된다. (XHTML에서는 SVG 언어를 사용하여 문서 내에 그래픽을 직접 작성할 수도 있지만, 외부 SVG 파일을 링크하는 것이 일반적으로 더 간단하다.) 영상이 순수하게 장식용이 아닌 경우, HTML은 시각장애인용 사용자 에이전트를 위해 유사한 의미적 가치를 가진 대체 콘텐츠를 제공할 수 있도록 허용한다.

HTML 문서는 또한 스크립트를 사용하여 HTML 하이퍼링크와 양식의 능력을 넘어서는 추가적인 동작을 제공하도록 확장될 수 있다.

 및  요소와 관련 HTML 속성은 스타일 시트와 스크립트를 제공한다.
* 문서 헤드에서  및 는 공유 외부 문서로 연결되거나,  및 가 직접 임베드된 지침을 포함할 수 있다. ( 요소 또한 스타일 시트를 연결하는 데 사용될 수 있다.)
*  또는 는 문서의 어느 지점(헤드 또는 바디)에서나 나타날 수 있다.
* `style` 속성은 대부분의 문서 바디 요소(예: )에서 인라인 스타일 지침을 포함하기 위해 유효하게 사용할 수 있다.
* 스크립트로의 연결을 제공하는 이벤트 처리 속성은 대부분의 요소에서 선택 사항이다.
* 스크립트를 실행하지 않는 사용자 에이전트를 위해  요소가 적절한 대체 콘텐츠를 제공한다. 다만 이는 문서 헤드와 바디에서 블록 수준 요소로만 사용될 수 있다.

## 문서 구조 요소

## 문서 헤드 요소

[섬네일|[네트스케이프 내비게이터|네트스케이프 3.0에서 렌더링된  태그.]]

## 문서 바디 요소

시각적 브라우저에서 표시 가능한 요소는 블록(block) 또는 인라인(inline)으로 렌더링될 수 있다. 모든 요소는 문서 시퀀스의 일부이지만, 블록 요소는 부모 요소 내에서 다음과 같이 나타난다.
* 줄이 바뀌지 않는 직사각형 객체로서 나타남
* 주변 요소와 독립적으로 설정할 수 있는 블록 여백, 너비 및 높이 속성을 가짐
반대로 인라인 요소는 문서 텍스트 흐름의 일부로 취급된다. 여백, 너비 또는 높이를 설정할 수 없으며 줄 바꿈이 적용된다.

### 블록 요소

블록 요소(block-level elements)는 직사각형 구조를 가진다. 기본적으로 이러한 요소는 부모 요소의 전체 너비에 걸쳐지며, 따라서 배치된 곳과 동일한 수평 공간을 다른 요소가 차지하는 것을 허용하지 않는다.

블록 요소의 직사각형 구조는 종종 CSS 박스 모델이라고 불리며 여러 부분으로 구성된다. 각 요소는 다음을 포함한다.
* 요소의 콘텐츠(content)는 요소의 시작 태그와 종료 태그 사이에 배치된 실제 텍스트(또는 기타 미디어)이다.
* 요소의 패딩(padding)은 콘텐츠 주변의 공간이지만 여전히 요소의 일부를 형성한다. 패딩은 두 요소 사이의 공백을 만드는 데 사용해서는 안 된다. 배경 이미지나 색상과 같이 요소에 할당된 모든 배경 스타일은 패딩 내에서 볼 수 있다. 요소 패딩의 크기를 늘리면 이 요소가 차지하는 공간의 양이 늘어난다.
* 요소의 테두리(border)는 요소의 절대적인 끝이며 해당 요소의 둘레를 감싼다. 테두리의 두께는 요소의 크기를 증가시킨다.
* 요소의 마진(margin)은 요소를 둘러싼 공백이다. 다른 요소의 콘텐츠, 패딩 및 테두리는 고급 CSS 배치를 통해 강제되지 않는 한 이 영역에 들어올 수 없다. 대부분의 표준 DTD를 사용할 때, 서로 다른 요소의 좌우 마진은 서로를 밀어낸다. 반면 요소의 상단 또는 하단 마진은 쌓이지 않고 서로 겹친다. 이는 이러한 요소 사이의 공백이 그들 사이의 더 큰 마진만큼 커진다는 것을 의미한다.

위 섹션은 CSS 렌더링의 세부 구현만을 언급하며 HTML 요소 자체와는 직접적인 관련이 없다.

#### 기본 텍스트

#### 목록

#### 기타 블록 요소

### 인라인 요소

인라인 요소는  요소 내에 직접 배치될 수 없으며, 반드시 블록 수준 요소 내에 완전히 중첩되어야 한다.

#### 앵커

#### 구문 요소
구문 요소는 구문을 마킹하고 텍스트 단편에 구조나 의미론적 의미를 추가하는 데 사용된다. 예를 들어, 와  태그는 텍스트를 강조하는 데 사용될 수 있다.

##### 일반

##### 컴퓨터 구문 요소
이러한 요소들은 주로 소스 코드(), 변수(), 사용자 입력(), 터미널 또는 기타 출력()을 차별화하여 컴퓨터 코드 개발 및 사용자 상호작용을 문서화하는 데 유용하다.

#### 표현
시각적 표현 마크업은 시각적 브라우저에만 직접 적용되므로 사용이 권장되지 않는다. 대신 스타일 시트를 사용해야 한다. 이러한 요소 중 몇몇은 HTML 4 / XHTML 1.0에서 구식화되었거나 유효하지 않으며, 나머지는 XHTML 2.0 초안에서 유효하지 않다. 그러나 HTML5 초안은 , , 를 다시 포함시키고 각각에 새로운 의미론적 의미를 부여했다. HTML5 문서에서 이러한 요소의 사용은 의미론적으로 올바르다면 더 이상 권장되지 않는 것이 아니다.

#### Span

#### 기타 인라인 요소

### 영상 및 객체

### 양식

이러한 요소들은 양식으로 결합되거나 일부 사례에서는 사용자 인터페이스 컨트롤로서 별도로 사용될 수 있다. 문서에서 이들은 단순한 HTML이거나 스크립트와 결합되어 사용될 수 있다. HTML 마크업은 양식을 구성하는 요소와 양식이 제출될 방식을 지정한다. 그러나 사용자의 입력이 제출되면 이를 처리하기 위해 어떤 형태의 스크립트(서버 사이드 스크립트, 클라이언트 사이드, 또는 둘 다)가 사용되어야 한다.

(이 요소들은 블록 또는 인라인 요소이지만, 다른 인라인 또는 블록 요소보다 사용이 더 제한적이므로 여기에 모아서 설명한다.)

### 표
HTML 표의 형식은 HTML 3.0 Drafts와 이후의 RFC 1942 HTML Tables에서 제안되었다. 이들은 CALS Table Model에서 영감을 얻었다. 이러한 제안 중 일부 요소들은 HTML 3.2에 포함되었으며, 현재 형태의 HTML 표는 HTML 4에서 표준화되었다. (표 내에서 사용되는 많은 요소는 블록 요소도 인라인 요소도 아니다.)

## 프레임

프레임은 시각적 HTML 브라우저 창을 여러 구획으로 나눌 수 있게 하며, 각각은 다른 문서를 보여줄 수 있다. 레이아웃의 반복되는 부분은 하나의 프레임에서 사용하고 가변적인 콘텐츠는 다른 프레임에 표시할 수 있으므로 대역폭 사용을 줄일 수 있다. 그러나 별도의 독립된 문서(또는 웹사이트)들이 서로 인접하게 표시되고 동일한 부모 창과 상호작용할 수 있기 때문에, 특히 비시각적 사용자 에이전트에서 특정 사용성 비용이 발생할 수 있다. 이러한 비용 때문에  요소를 제외한 프레임은 HTML 4.01 Frame-set에서만 허용된다. Iframe은 다른 서버에 있는 문서도 가질 수 있다. 이 경우 창들 사이의 상호작용은 브라우저에 의해 차단된다. 페이스북과 트위터와 같은 사이트들은 제3자 웹사이트에 콘텐츠(플러그인)를 표시하기 위해 iframe을 사용한다. 구글 AdSense는 제3자 웹사이트에 배너를 표시하기 위해 iframe을 사용한다.

HTML 4.01에서 문서는 와   와 를 포함할 수 있지만, 와 를 동시에 포함할 수는 없다. 그러나 는 일반적인 문서 바디에서 사용될 수 있다.

### <code>longdesc</code> 속성
HTML에서 **<code>longdesc</code>**는 , , 또는  요소 내에서 사용되는 속성이다. 이는 해당 영상, 프레임 또는 인라인 프레임에 대한 **긴 설명**을 제공하는 문서로의 URL이어야 한다. 이 속성은 설명 텍스트 자체가 (흔히 하는 실수임) URL을 포함해야 한다.

`longdesc`는 시각 장애인이나 시각 장애가 있는 컴퓨터 사용자들에게 영상 정보를 표시하기 위해 스크린 리더에 의해 사용되도록 설계되었으며, 웹 브라우저와 스크린 리더 모두에서 널리 구현되어 있다. 일부 개발자들은 이 속성을 사용하는 저자가 상대적으로 적고 그들 중 대부분이 이를 잘못 사용하기 때문에 실제로 이 목적으로 거의 사용되지 않는다고 반론하며, `longdesc`를 구식화할 것을 권장한다. 출판 업계는 이에 대응하여 `longdesc`의 유지를 옹호하고 있다.

#### 예시

```html
<img src="Hello.jpg" longdesc="description.html">
```

`description.html`의 내용:

```html
<br />
<p>이것은 2단 생일 케이크의 영상입니다.</p>
...
```


#### 텍스트 내의 긴 설명으로 링크하기
네이티브하게 링크를 제공하는 것을 지원하는 그래픽 브라우저가 매우 적기 때문에(오페라와 iCab이 예외임), 가능하면  요소 근처에 설명 페이지로의 링크를 포함하는 것이 유용하며, 이는 정안인 사용자들에게도 도움이 될 수 있다.

##### 예시

```html
<img src="Hello.jpg" longdesc="description.html" /> [<a href=
"description.html" title="long description of the image">D</a>]
```


## 역사적 요소
다음 요소들은 1989년부터 1991년까지 팀 버너스리가 개발한 초기 HTML의 일부였다. 이들은 HTML Tags에서 언급되었으나 HTML 2.0에서 구식화되었으며 HTML 표준의 일부였던 적이 없다.

## 비표준 요소

이 섹션은 널리 사용되었으나 구식이 된 요소들을 나열한다. 즉 이들은 유효한 코드에서 사용되지 않는다. 모든 사용자 에이전트에서 지원되지 않을 수 있다.

## 주석

## 같이 보기
* 문서 객체 모델(DOM)
* 자바스크립트

## 각주

; 내용주

## 외부 링크
* HTML 4.01 (Dec 24, 1999): elements and attributes
*  (Oct 28, 2014): elements and attributes


분류:웹 1.0