2009-06-25 5 views
3

다음과 같은 HTML 코드를 보았습니다.이 HTML 양식 필드는 무엇입니까?

<form name="form1" method="post" action="action.php"> 
    <label for="name"> Name: <input type="text" name="name"> 
    <label for="email">Email: <input type="text" name="email"> 
</form> 

"name"형식은 무엇입니까? (-> form1)

레이블 태그는 무엇입니까? (나는 이것을 사용하지 않는다. 그래서 코드를 입력 할 때 틀릴 수도있다.)

답변

6

라벨은 다음 입력 필드에 텍스트 조각을 - 그들은 일반 텍스트에서 어떤 다른 보이지 않지만 :

  • 클릭을 그 (것)들에 분야에 초점을 둔다
  • 해당하는 분야의 묘사로 screenreaders는 그들을 읽을 것이다.

이들은 CSS에도 유용합니다. 라벨을 사용하면 다른 페이지 요소와 독립적으로 필드 라벨의 스타일을 쉽게 지정할 수 있습니다.

form name 속성을 사용하면 JavaScript에서 양식을 쉽게 참조 할 수 있습니다. 요즘은 id을 사용합니다.

+0

설명해 주셔서 감사합니다. 귀하의 대답은이 질문의 답으로 뽑혔습니다. – jingleboy99

+0

+1은 클릭이 입력 필드에 초점을 맞추고 있음을 나타냅니다. 작지만 중요한 포인트 (다른 ​​높은 등급의 대답에는 언급되지 않음). http://www.google.fi/search?q=html+label+usability – Jonik

+5

라벨의 for 속성은 NAME이 아닌 입력의 ID와 일치해야합니다. – Quentin

5

레이블은 특정 텍스트를 양식 요소와 연결하는 태그입니다. 각 입력 상자의 용도를 보여주는 권장 방법입니다. 화면 판독기 및 기타 접근성 소프트웨어는이 요소를 사용하여 입력 상자의 용도를 사용자에게 알려줍니다. 페이지의 다른 요소와 동일한 방식으로 스타일을 지정할 수 있으며 입력 옆에있을 필요도 없습니다. 이름이 같으면 작동합니다. 이에 대한 올바른 형식이 실제로 label 요소에 대한 자세한 내용은

<label for="name">Name:</label><input type="text" name="name" /> 
<label for="email">Email:</label><input type="text" name="email" /> 

해야합니다 http://www.w3.org/TR/html401/interact/forms.html#h-17.9를 방문 - 페이지가 HTML 양식과 함께 할 모든에 대한 정보를 많이 가지고있다.

양식 요소의 이름 속성은 javascript 및 css에서 다른 양식에 액세스하는 데 유용 할 수 있지만 포함 할 필요는 없습니다. http://www.w3.org/TR/html401/interact/forms.html#adef-name-FORM에 따르면 이전 버전과의 호환성을 위해서만 포함되어 있으므로 id 속성을 대신 사용하는 것이 좋습니다.

+0

그럼 앞으로 모든 HTML 양식에 라벨 태그를 포함 시키도록 권하고 싶습니까? – jingleboy99

+1

모든 입력에 대해 label 태그를 포함해야합니다. 따라서 스크린 리더는 "Name :"텍스트가 동일한 이름을 가진 입력에 속한다는 것을 알게됩니다. 그리고 a_m0d가 그의 라벨 태그를 닫았습니다. 이것 역시 필요합니다 (: – peirix

+0

) 스크린 리더 때문에뿐만 아니라 일반 브라우저에서도 유용성이 크게 향상되었습니다! 예를 들어 http://www.seoconsultants.com/html/forms/labels/ – Jonik

2

레이블은 의미 적으로 "Name :"문자열을 for 속성으로 지정된 해당 입력 필드와 의미 적으로 연결합니다. w3c html documentation에서 더 많은 내용보기

또한 사용자가 레이블을 클릭하면 해당 입력 필드에 초점이 맞춰집니다. 이는 양식 사용성 측면에서 중요합니다.

+0

w3c 링크를 사용해 주셔서 감사합니다. 정말 도움이되는 이유는 무엇입니까? – jingleboy99

2

양식 이름은이 양식을 고유하게 식별하기위한 것이므로 JavaScript로 스크립팅 할 때 참조 할 수 있습니다. 이것에 "id"속성을 사용할 수도 있습니다. 아무런 차이가 없습니다.

레이블 요소는 사용 용이성을 목적으로하며 일반 텍스트와 다르게 렌더링하지 않지만 "for"속성을 관련 입력의 "id"속성으로 채우는 경우 레이블이 함께 묶여 사용자가 레이블 텍스트를 클릭하면 해당 입력에 초점을 맞 춥니 다.

레이블에 사용할 텍스트 뒤에 레이블 태그를 닫아야하므로 질문에 사용한 레이블 코드가 올바르지 않습니다.

<label for="name">Name:</label><input id="name" type="text" name="name" /> 
+0

코드를 수정 해 주셔서 감사합니다. 앞으로 레이블을 닫을 것입니다 .. – jingleboy99

+0

이 예제의'label'은 입력과 관련이 없습니다. 입력의 'id'를 참조하십시오. – feeela

+0

@feeela 죄송합니다, 지적 해 주셔서 감사합니다. 그에 따라 답변을 업데이트했습니다. –