Статьи

HTML6 Идеи и HTML.Следующий

HTML.next

Понятие HTML6, несмотря на то, что спецификация HTML5 планировалось полностью принять и достичь максимально широкой совместимости в 2014 году, теперь стали появляться идеи о том, как выглядит эта спецификация следующего поколения — HTML.next, как это обычно упоминается в W3C-консорциум.

Новые элементы семантики

<Dеcompress>

Этот элемент предлагается для интеграции файлов из ZIP-архива (формат ZIP в качестве основного, но возможны и другие) непосредственно в веб-страницу. Преимущества такого подхода: доступ веб-браузера к файлам из ZIP, снижение требований к пропускной способности (что особенно важно для мобильных платформ).

Пример использования:

<decompress href="http://example.com/mobile/familyreunion.zip">
<a href="familyreunion.zip/html/activities.html">Activities from our family reunion</a>
<img src="familyreunion.zip/img/family.jpg">

Семантика для описания названий и авторов

Он используется для идентификации имен книг, сообщений в блогах, фильмов и т. Д. Связанных с ним авторов, даже если макет применяется только для нескольких абзацев. Эта семантика может быть реализована в виде псевдометки и определять отношения между элементами.

[title: The praise of Shadow id:praise by:junichiro] 
is a book written by [author: Junichiro Tanizaki id:junichiro] 
explaining … etc.

<Lоcation>

Этот элемент (аналог <time />) используется для описания геоинформации. Предлагается использовать атрибуты: широта, долгота, высота:

<location lat=27.9 long=-71.3 altitude=-100>The Bermuda Triangle</location>

<Tеaser>

Элемент предназначен для переноса блока контента, имеющего ссылку на полный блок. Такие структуры мы видим повсюду: в результатах поиска на первой странице блога, в блоке резюме с (или без) медиаресурсами и так далее. Как правило, это должен быть элемент сечения, который может быть расположен в других элементах сечения, например на странице навигации:

<nav>
  <teaser>
    <header>
      <h1><a href="http://www.example.com/myFirstPost.html">My First Post</a></h1>
    </header>
    <p>This is my first article on the page, and it's really cool.</p>
    <footer>
      <time>3 Days Ago</time>
      <div><a href="http://www.example.com/myFirstPost.html">http://www.example.com/myFirstPost.html</a></div>
    </footer> 
  </teaser>
  <teaser>
    <header>
      <h1><a href="http://www.example.com/mySecondPost.html">My Second Post</a></h1>
    </header>
    <p>This article is on superconducting fields, and is even cooler than my first article.</p>
    <footer>
      <time>1 Days Ago</time>
      <div>
        <a href="http://www.example.com/mySecondPost.html">http://www.example.com/mySecondPost.html</a>
      </div>
    </footer> 
   </teaser>
</nav>

Преимущества использования этого элемента:

  • описание общих часто используемых структур в HTML
  • помогает оптимизировать поисковые системы и компоненты управления, потому что разные виджеты могут использовать эту структуру по-разному
  • не нужно участвовать в механизме нумерации списков
  • может использоваться вместе с якорями для создания быстрого ToC
  • хорошо работает в блогах HTML5, видимо, взят за основу для разделения контента

формы

Автоматическая запись в формы ввода заглавными буквами

Семантическое описание типа данных для записи в поле. Этот атрибут позволяет браузеру предоставить пользователю лучший интерфейс для ввода текста.

<form>
  Name: <input name="name" autocapitalize="words">
  State: <input name="state" autocapitalize="characters">
</form>

Тег autocapitalize = «words» означает, что каждое новое слово пишется с заглавной буквы. Это актуально для полей, где вам нужно указать имена, например. «Джон Доу». Тег autocapitalize = «characters» означает, что каждый символ будет написан заглавной буквой. Это актуально для сокращений.

Улучшена аутентификация форм

Сегодня большинство браузеров имеют эвристику, которая определяет, что страница имеет форму аутентификации, смены пароля и так далее. Часто эти эвристические алгоритмы не всегда работают правильно. Добавление аннотаций к формам и полям позволяет браузерам более точно обрабатывать сценарии и улучшать взаимодействие.

Локализация элементов управления

Веб-разработчикам часто не хватает возможности локализовать элементы управления, например: кнопка «Обзор» в полях <input type = ‘file’ />, элементы управления для установки даты / времени

мультимедиа

Адаптивные изображения

HTML6 предоставляет возможность загружать изображения разных размеров, в зависимости от текущих настроек на стороне клиента.

Адаптивная потоковая передача

Существует множество различных форматов адаптивной потоковой передачи (а также несколько различных форматов прогрессивного медиа для загрузки контента). Во многих случаях с помощью потоковой передачи нам необходимо передавать некоторый защищенный контент. Текущие медиа-элементы HTML5 поддерживают выбор различных форматов. Тем не менее, существуют определенные аспекты адаптивной потоковой передачи и защищенного контента, которые требуют улучшения возможностей HTML для общего использования. В частности, они включают в себя:

  • дополнительный медиа-элемент для статуса, который позволяет отображать текущий статус (например, синхронизация данных с сервером)
  • дополнительный медиа-элемент для ошибок (например, ошибка передачи)
  • дополнительный медиа-элемент для событий (например, изменение битрейта потока)
  • дополнительный элемент мультимедиа для свойств (например, текущая скорость передачи, которая может быть связана с другими показателями QoS)

Аудио баланс

Регулировка баланса звука (правый / левый канал) с HTML5 для стерео треков.

Улучшение воспроизведения видео

  • быстрое / медленное движение / быстрая перемотка вперед
  • предыдущий / следующий кадр

Полноэкранный режим и скриншоты

Вот пример того, как мы можем работать с полноэкранным режимом и получать скриншоты:

domElement.fullScreen(); 
domElement.getImageData(0, 0, domElement.offsetWidth, domElement.offsetHeight);

Редактирование текста

Элемент <editоr>

Этот элемент позволяет сохранить набранный текст.

<tеxtarea type = ”wysiwyg”>

Основная задача: WYSIWYG-редактор для структурированного (семантического) текста. Использование по назначению: блоги, электронные письма, редактирование статей на сайтах CMS и т. Д. Примерный список поддерживаемых элементов:

  • блоки : p, ul / li, ol / li, dl / dt / dd, blockquote, pre
  • пролеты : сильный / EM / A / SUP / Sub / U / код / ​​забастовка
  • встроенные блоки : img, br
  • таблицы: таблица / tr / th / td

Особенности:

  • поддержка копирования / вставки изображений из / в системный буфер обмена (связанный по атрибуту)
  • поддержка копирования / вставки текста и HTML из / в системный буфер обмена (связанный по атрибуту)
  • не должен поддерживать встроенные стили
  • может иметь атрибут content-style = «style.css», задающий стиль элементов в редакторе

Особенности копирования / вставки

Список, представленный в левой части таблицы, будет отображаться так, как показано в правой части таблицы.

<ol>
    <li>Lorem</li>
    <li>Ipsum</li>
    <li>Dolor</li>
    <li>sit</li>
    <li>et cetera</li>
</ol>
  1. Lorem
  2. Ipsum
  3. боль
  4. сидеть
  5. и т.д

Если вы копируете элемент «Dolor» и вставляете его в обычный текстовый редактор WYSIWYG вместо простой записи без необходимости получать номер элемента «3. Dolor».

Компоненты и ECMAScript

«Поведения» или динамические подклассы элементов DOM

Эта функция очень полезна для каркасов и инструментов компонентов пользовательского интерфейса.

document.behaviors["ul.some>li"] = { // the behavior class:
  attached: function() {...},
  detached: function() {...},
  onmousedown: function() {...}, 
  onclick: function() {...}, 
  ...
};

«Поведения» — это набор методов, которые назначаются всем элементам, которые соответствуют селектору в объявлении. Когда элемент получает событие, он вызывает связанную функцию. Также предложено работать с CSS. Это поведение похоже на «цепочку» событий в jQuery.

включают ( ‘URL’);

Многим программистам, которые привыкли писать на C ++, PHP и т. Д., Не хватало такой возможности. Для сохранения модульности рекомендуется использовать подключение внешних файлов следующим образом (работает аналогично @import url (…) в CSS):

window.include("url"[,mime/type])

avaScript: пространство имен и классы

JavaScript-код становится все более сложным. На одной и той же странице может использоваться несколько разных библиотек, и отсутствие пространств имен (и классов) становится все более проблематичным для веб-разработчиков.

Подсветка синтаксиса для элементов <cоde>

Учитывая тот факт, что в браузерах уже есть инструменты парсинга HTML, JS и CSS, было бы неплохо иметь встроенную поддержку подсветки синтаксиса без необходимости разбора кода на стороне клиента с помощью Javascript. Для начала было бы достаточно всех перечисленных выше языков, другие можно добавить, подключив соответствующий CSS.