왜 필드 셋 태그가 필요합니까?


165

<fieldset>태그 가 필요 합니까? 어떤 용도로 사용 되든 양식 태그의 하위 집합 일 수 있습니다.

W3Schools에 대한 정보를 찾았습니다.

  • <fieldset>태그 형태로 그룹 관련 요소에 사용된다.
  • <fieldset>태그는 관련 요소 주위에 상자를 그립니다.

"이것이 무엇을 하는가"에 대해 "사양에 존재하는 이유"를 착각하는 사람들에 대한 자세한 설명. 그림 부분은 관련이 없다고 생각하며 양식에 관련 요소를 그룹화하기 위해 왜 특수 태그가 필요한지 알 수 없습니다.


30
왜 태그가 필요합니까? 배경색으로 1px div에서 이미지를 만들 수 있는데 왜 img 태그가 필요합니까?
Oded

127
참고 : W3C 는 w3schools와 관련없습니다 .
웨슬리 머치

82
w3schools를 언급하지 마십시오. MDN : fieldset @ MDN을 사용하십시오 .
Sirko

9
@Madmartigan 알고 있습니다. 그러나 W3C는 내 질문에 대답하기 위해 많이 사용하지 않은 사양 만 제공합니다.
이스트 몽크

2
소개 (안) W3 스쿨을 사용 및 기술 정보에 대한 더 신뢰할 수있는 사이트 사용 : w3fools.com
데닐손 Sá 마이 아를

답변:


187

가장 분명하고 실용적인 예는 다음과 같습니다.

<fieldset>
  <legend>Colour</legend>

  <input type="radio" name="colour" value="red" id="colour_red">
  <label for="colour_red">Red</label>

  <input type="radio" name="colour" value="green" id="colour_green">
  <label for="colour_green">Green</label>

  <input type="radio" name="colour" value="blue" id="colour_blue">
  <label for="colour_blue">Blue</label>

</fieldset>

이를 통해 각 라디오 버튼에 레이블을 지정할 수 있으며 그룹 전체에 레이블을 제공 할 수 있습니다. 컨트롤과 컨트롤 범례를 시각적으로 표현할 수없는 보조 기술 (예 : 화면 판독기)을 사용하는 경우 특히 중요합니다.


4
링크가 편리하지 않지만 많은 스크린 리더가 필드 세트의 레이블 앞에 범례 텍스트를 읽습니다 .
웨슬리 머치

8
@Madmartigan — 좋은 일입니다. 이는 여전히 동일한 라디오 버튼 세트를 다루고 있다는 것을 의미합니다. (전설이 간결한 지 확인하는 이유이기도합니다 ).
Quentin

1
많은 의미를 갖는 "보조 기술".
이스트 몽크

5
또한 <fieldset>을 사용하여 그룹화 된 요소를 '비활성화'할 수 있습니다. <fieldset>을 사용하여 태그에 '필수'속성을 추가하여 그룹이 필요한지 여부를 지정해야하지만 불행히도 작동하지 않습니다.
Simon Savai 2016 년

41

fieldset의 또 다른 기능은이 기능을 비활성화하면 그 안에 포함 된 모든 필드가 비활성화됩니다.

<fieldset disabled>
  <legend>Disabled Fields</legend>
  <input type="text" value="Sample">
  <textarea>Text Area</textarea>
</fieldset>

<fieldset>
  <legend>Enabled Fields</legend>
  <input type="text" value="Sample">
  <textarea>Text Area</textarea>
</fieldset>


6
물론 s 및 form 컨트롤에 disabled대해 기능 하는 속성 fieldsetform요소에 대해서도 올바르게 구현되어야한다는 주장을 할 수 있습니다. 이해가 되겠습니까?
amn

25

접근성을 위해 필요합니다.

체크 아웃 : http://usability.com.au/2013/04/accessible-forms-1-labels-and-identification/

HTML 4 요소 fieldsetlegend사용하면 테이블을 사용하지 않고도 논리적으로 다양한 관심 영역이있는 큰 양식을 레이아웃하고 구성 할 수 있습니다. fieldset태그는 선택 요소 주위에 상자를 만드는 데 사용할 수 있으며, legend태그는 이러한 요소에 캡션을 제공 할 것입니다. 이러한 방식으로 양식 요소를 식별 된 범주로 그룹화 할 수 있습니다.

브라우저 fieldset마다 다른 방식으로 기본 테두리 가 표시 될 수 있습니다 . 계단식 스타일 시트를 사용하여 테두리를 제거하거나 모양을 변경할 수 있습니다.


fieldset이 HTML4에 없습니다. HTML5 기능
radio_head

5
그것은 HTML 4.0.1에서 나왔습니다 -w3.org/TR/html401/interact/forms.html#h-17.10
Eric Sites

14

여기 에 설명 된 대로이 태그의 목적은 양식의 구성을 명확하게하고 디자이너가 양식 요소를 장식하기 위해 더 쉽게 액세스 할 수 있도록하는 것입니다.


6

Fieldset은 항목을 논리적으로 구성하지만 청각 브라우저를 사용하는 사람들의 접근성을 향상시킵니다. Fieldset은 편리하므로 많은 응용 프로그램에서 과거에 매우 인기가 있었으므로 HTML로도 구현했습니다.


4

라디오를 필드 세트로 둘러싸고 라디오 버튼 입력 태그에 ID를 넣지 않으면 필드 세트로 표시된 그룹이 단일 항목 인 것처럼 탭 체인에 추가되는 것이 좋습니다.

그러면 양식을 탭할 수 있고 필드 세트에 도달하면 화살표 키를 사용하여 선택한 라디오를 변경 한 다음 완료되면 탭을 해제 할 수 있습니다.

또한 접근성을 잊지 마십시오. 화면 판독기는 양식을 이해하고 자연스럽게 사용자에게 읽을 수 있으려면 fieldset + legend가 필요합니다. 눈에 띄는 사용자가 볼 수 없도록하려면 전설을 사라지게하십시오. CSS를 사용하여 바로 범례를 레이아웃하고 스타일을 지정하는 것은 레거시 브라우저에서 특히 브라우저 간 욕설을 유발하기 때문에 화면 판독기 사용자에게는 범례 태그가 보이지 않게하고 레이블처럼 스타일이 지정된 별도의 aria-hidden = "true"범위를 추가합니다. 눈에 보이는 사용자는 스타일을 간단하게 만들고 접근성을 유지합니다.


This lets you tab through a form, and when you get to a fieldset, you can use arrow keys to change the selected radio, and then tab away when you're done.-이것은 무선 입력의 기본 동작이며 필드 셋과 관련이 없습니다. 확인란은 기본적으로 다르게 동작합니다.
Vladimir Kornea

2

CSS 스타일과 레이블을 컨트롤에 연결하는 것이 편리하다는 것을 알았습니다. 필드 그룹 주위에 시각적 컨테이너를 쉽게 배치하고 레이블을 정렬 할 수 있습니다.


2

필드 집합을 사용하여 거대한 양식이 있고 일종의 양식 마법사에서 분류하려는 경우 양식 입력을 그룹화합니다.

이 같은 질문에 대한 답변이 여기 에 있습니다.


2

몇 가지 장점을 요약하면 다음과 같습니다.

HTML  <fieldset> 요소는 MDN에<label> 의해 정의 된대로 웹 양식 내에서 여러 컨트롤과 레이블 ( ) 을 그룹화하는 데 사용됩니다 .

, fieldset 태그를 사용하면 양식을보다 설명하기 위해 필드 집합을 논리적으로 그룹화 할 수 있습니다. 따라서 선택적으로 공통 이름으로 그룹화 된 양식 컨트롤 세트입니다.

<fieldset>
  <legend>Choose your favorite animal</legend>

  <input type="radio" id="dog" name="animal">
  <label for="dog">Dog</label><br/>

  <input type="radio" id="cat" name="animal">
  <label for="cat">Cat</label><br/>
</fieldset>

필드 셋 사용 의 " 장점 "은 다음과 같습니다.

  • 그것들은 가장 의미 론적 으로 데이터 (이 경우에는 폼)를 마크 업할 수있게합니다 . 필드를 필드 세트에 배치하는 것이 필드를 div에 배치하는 것보다 설명하기 쉽습니다. div는 필드 간의 관계에 대해 아무 것도 알려주지 않으며 필드 세트는 관계가 있음을 나타냅니다.
  • 사용하여 비활성화 , 당신이 한 가지에있는 모든 내용을 해제 할 수 있습니다.
  • 접근성에 도움이됩니다

1

나를 위해, <fieldset>...</fieldset>요소 의 가장 큰 장점 중 하나 는 폼 안에 있지 <form>...</form>않더라도 컨텍스트 를 유지할 수 있다는 <fieldset>...</fieldset>것입니다.

예를 들면 다음과 같습니다.

<div class="header">
    <form id="myForm">
        <input type="text" name="someInput">
    </form>
</div>

<div class="footer">
    <fieldset form="myForm">
        <input type="text" name="someInput1">
    </fieldset>
</div>

의미 적으로 다음 형식과 동일합니다.

<form>
    <input type="text" name="someInput">
    <input type="text" name="someInput1">
</form>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.