Browse Source

1. Use XHTML-Compatible attributes for selected and checked form widgets

2. Use HTML <label> for radio buttons. This allows user to click the text
"Yes" or "No" instead of just the widget. This works in all popular browsers
and is more intuitive this way.
Alexandros Vellis 21 năm trước cách đây
mục cha
commit
8af8fc62f9
1 tập tin đã thay đổi với 11 bổ sung9 xóa
  1. 11 9
      functions/options.php

+ 11 - 9
functions/options.php

@@ -223,7 +223,7 @@ class SquirrelOption {
 
             /* If this value is the current value, select it. */
             if ($real_value == $this->value) {
-               $new_option .= ' selected';
+               $new_option .= ' selected=""';
             }
 
             /* Add the display value to our option string. */
@@ -318,22 +318,24 @@ class SquirrelOption {
     function createWidget_Boolean() {
         /* Do the whole current value thing. */
         if ($this->value != SMPREF_NO) {
-            $yes_chk = ' checked';
+            $yes_chk = ' checked=""';
             $no_chk = '';
         } else {
             $yes_chk = '';
-            $no_chk = ' checked';
+            $no_chk = ' checked=""';
         }
 
         /* Build the yes choice. */
-        $yes_option = '<input type="radio" name="new_' . $this->name
-                    . '" value="' . SMPREF_YES . "\"$yes_chk $this->script>&nbsp;"
-                    . _("Yes");
+        $yes_option = '<input type="radio" id="new_' . $this->name . '_yes" '
+                    . 'name="new_' . $this->name . '" value="' . SMPREF_YES . '"'
+                    . $yes_chk . ' ' . $this->script . '>&nbsp;'
+                    . '<label for="new_'.$this->name.'_yes">' . _("Yes") . '</label>';
 
         /* Build the no choice. */
-        $no_option = '<input type="radio" name="new_' . $this->name
-                   . '" value="' . SMPREF_NO . "\"$no_chk $this->script>&nbsp;"
-                   . _("No");
+        $no_option = '<input type="radio" id="new_' . $this->name . '_no" '
+                   . 'name="new_' . $this->name . '" value="' . SMPREF_NO . '"'
+                   . $no_chk . ' ' . $this->script . '>&nbsp;'
+                    . '<label for="new_'.$this->name.'_no">' . _("No") . '</label>';
 
         /* Build and return the combined "boolean widget". */
         $result = "$yes_option&nbsp;&nbsp;&nbsp;&nbsp;$no_option";