У меня такая же проблема в прошлом .. и я исправил ее через .htaccess
файл
. Когда вы вносите изменения в конфигурацию php через .htaccess
, вы должны поместить настройки в тег IfModule
другое, что возникнет ошибка внутреннего сервера.
Это пример, он отлично подходит для меня:
php_value upload_max_filesize 40M
php_value post_max_size 40M
И это ссылка на php, если вы хотите понять больше. http://php.net/manual/en/configuration.changes.php
Вы не можете связать элемент label
с более чем одним элементом управления. Это описано в определении label
.
Вы можете дать каждому элементу select
свою собственную метку.
. Лучший подход состоит в том, чтобы иметь одно текстовое поле ввода для даты. Тогда нет проблем с label
. Это означает больше работы, так как вам нужно проанализировать сервер данных на стороне сервера, и вы также должны анализировать его на стороне клиента (для проверок, чтобы пользователь мог сразу же получать информацию о проблемах). Но это лучшее удобство использования (конечно, быстрее вводить дату, чем использовать три неуклюжих выпадающих меню) и более высокую доступность. Вам нужно определить формат даты и четко указать пользователю, что такое ожидаемый формат.
Проблема с использованием одной метки для всех трех полей ввода заключается в том, что не подозреваемый пользователь не узнает, какой из трех ячеек находится в центре внимания, потому что в каждом случае будет считываться один и тот же текст. Существует несколько подходов. Возможно, самым безопасным является наличие ярлыка для каждого окна, но скрыть эти ярлыки в левой части окна просмотра. Другая возможность, которая должна работать, но я не тестировал это:
<fieldset>
<legend>Check in date</legend>
<select id="day" aria-label="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="month" aria-label="month">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="year" aria-label="year">
<option value="1">2012</option>
<option value="2">2013</option>
</select>
</fieldset>
После ответа от @Alohci вы также можете использовать aria-labelledby
и отменить ссылку на именование (, которая, по моему мнению, немного ближе к соглашению, которое вы искали ):
<label id="date">Check in date</label>
<select aria-labelledby="date">
<!-- ... -->
</select>
<select aria-labelledby="date">
<!-- ... -->
</select>
<select aria-labelledby="date">
<!-- ... -->
</select>
Также обратите внимание, согласно на W3C на labelled-by
:
Если текст ярлыка отображается на экране, авторам СЛЕДУЕТ использовать
blockquote>aria-labelledby
и НЕ ДОЛЖЕН использоватьaria-label
. Используйтеaria-label
только в том случае, если интерфейс таков, что на экране нет видимой метки. При вычислении свойства доступного имени агенты пользователя имеют приоритетaria-labelledby
по сравнению сaria-label
.
HTML5 input type="date"
может быть полезен, особенно если вы используете блоки выбора месяца / дня / года, чтобы ограничить возможности выбора даты. Этот элемент ввода поддерживает атрибуты даты min
и max
, поэтому вы можете применить свои ограничения. Он не поддерживается старыми браузерами, но я видел, что смарт-файлы cookie используют jQueryUI datepicker в качестве прокладки (с помощью обнаружения возможностей для определения поддержки type="date"
, а затем загрузки и вызывая datepicker, только если он не поддерживается изначально).
Нет правильного пути; метка относится к одному элементу. Просто укажите его на первый.
<label for="day">Check in date </label>
Вы также можете использовать специально созданный <fieldset>
, если вам нравится семантика, но я думаю, что это немного перебор. <input type="date">
, вероятно, лучший вариант здесь, так как это один элемент, на который можно указать ваш <label>
, более семантический и может быть несколько более дружелюбным, если вы реализуете хороший выбор времени, чтобы идти вместе с ним.
Если вы хотите придерживаться <select>
s, попробуйте дать каждому атрибут title
для доступности.