Тег progress — ход выполнения задачи

progress  элемент представляет ход выполнения задачи. Прогресс или неопределенность, указывают, что прогресс, это когда не ясно, как много работы еще предстоит сделать до выполнения задачи (например, потому, что задача ждет ответ удаленного хоста), либо прогресс число в диапазоне от нуля до максимума, отображая какая часть работы до сих пор была завершена.

Есть два признака, которые определяют текущее выполнение задачи представляются элементом. value  атрибут указывает, насколько задача была завершена, и max атрибут определяет, сколько работы эта задача требует в общей сложности. Единицы, являются произвольными и не уточняются.

Note: Чтобы сделать определенный прогресс бар, надо добавить value  атрибут с текущим прогрессом (либо число от 0,0 до 1,0, или, если max  атрибут указан, то число от 0 до значения max атрибута). Для того, чтобы создать неопределенный индикатор, удалите value атрибут.

Авторам рекомендуется также включать в тег текущее значение и максимальное значение, встроенный текст внутри элемента, так чтобы progress становился доступным для пользователей невизуальных агентов пользователей.

Вот фрагмент web-приложения, которое показывает прогресс некоторых автоматизированных задач:

<section>
 <h2>Task Progress</h2>
 <p>Progress: <progress id="p" max=100><span>0</span>%</progress></p>
 <script>
  var progressBar = document.getElementById('p');
  function updateProgress(newValue) {
    progressBar.value = newValue;
    progressBar.getElementsByTagName('span')[0].textContent = newValue;
  }
 </script>
</section>

(UpdateProgress() метод в этом примере будет вызвать другой код на странице, чтобы обновить фактические значения индикатора, так чтобы задача прогрессировала.)

value и max атрибуты, если он присутствуют, должны иметь значения, которые являются действительными числами с плавающей точкой. value  атрибут, если он присутствует, должен иметь значение, равное или большее нуля, и меньше или равный значению max  атрибута, если он присутствует, или 1.0, в противном случае. max атрибут, если он присутствует, должен иметь значение больше нуля.

Note: progress неправильно использовать для того, чтобы просто показать датчик, в отличие от выполнения задачи. Например, указание использования дискового пространства с помощью progress  было бы неуместным. Вместо этого используйте meter  элемент для таких случаев.

Требования агента пользователя : Если value  атрибута не указано, то прогресс-бар неопределенный индикатор. В противном случае, это определенный индикатор.

Если индикатор представляет собой определенный прогресс бар и элемент имеет max  атрибут, агент пользователя должен проанализировать max  значение атрибута в соответствии с правилами для разбора значений с плавающей точкой. Если это не приведет к ошибке, и если проанализированное значение больше нуля, то максимальное значение индикатора принимает это значение. В противном случае, если элемент не имеет max  атрибут, или если он есть, но разбор привел к ошибке, или если проанализированное value было меньше или равна нулю, то максимальное значение индикатора выполнения 1.0.

Если индикатор представляет собой определенный прогресс бар, агенты пользователей должны проанализировать value  значение атрибута в соответствии с правилами для разбора значений с плавающей точкой. Если это не приведет к ошибке, и если проанализированное значение меньше, чем максимальное значение, и больше нуля, то текущее значение прогресс-бара принимает это значение. В противном случае, если проанализированное value было больше или равно максимальному значению, то текущее значение прогресс-барa max значение индикатора. В противном случае, если разбор value  значения атрибута приводит к ошибке, или число, которое меньше или равно нулю, то текущее значение индикатора выполнения равно нулю.