2015-10-15 177 views
0

我正在構建調查問卷,併爲問題提供了一個標籤,然後單擊用戶回答的單選按鈕。 問題文本添加了一個標籤,然後根據響應的數量(是/否/不確定,男性/女性)標記的單選按鈕被添加。 我的問題是,我也試圖保持可訪問性,我需要將問題文本標籤與單選按鈕相關聯。向單選按鈕添加標籤

帶有嵌套輸入(無線電)的標籤很好地關聯,帶問題的標籤是附加到該字段集的標籤。

我使用的WAVE工具欄基本符合可訪問性標準,但我似乎無法克服孤兒標籤錯誤。

<div> 
    <label for="{{question.UniqueID}}" compile="question.Text"></label> 
</div> 
<div> 
    <fieldset class="col-sm-6" id="{{question.UniqueID}}"> 
     <label class="radio-inline" ng-repeat="responseOption in question.Responses"> 
      <input type="radio" 
        name="{{question.QuestionID}}" 
        id="{{responseOption.UniqueID}}" 
        value="{{responseOption.ResponseOptionID}}" 
        ng-model="$parent.selectedOptionID" 
        ng-click="newValue(value, question, responseOption)"> 
      {{responseOption.Text}} <!--Male/Female, yes/no/unsure--> 
     </label> 
    </fieldset> 

回答

2

你需要的是在一個字段集legend,而不是一個標籤。標籤實際上只用於配對輸入,因此feitla答案中的for/id建議。傳說是爲字段集提供關聯名稱的方式。儘管他們很難風格化。使用name attribute on the radio inputs可能會更好。那麼你可以用一個段落來代替這個問題。例如。

<p>Q1: Do you like snozzberries?</p> 
<input type=radio name=q1 id=q1-y /><label for=q1-y>Yes</label> 
<input type=radio name=q1 id=q1-n /><label for=q1-n>No</label> 
0

<label>元素應該有一個相關的for屬性,以便將其關聯到正確的輸入/收音機。

<label class="radio-inline" for="{{responseOption.UniqueID}}" ng-repeat="responseOption in question.Responses">

+0

由於輸入嵌套在標籤內,因此該標籤關聯的很好。我指的是另一個標籤,它應該與字段集關聯,但不是。我將編輯我的Q來指定。 – Mathemats