Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Есть ли возможность запустить приложение, использующее javafx java sdk8 на клиенте с jre7, openjdk?

Лучший ответ:
Если это приложение не использует фичь 8-ой джавы и его скомпилировать с -target version 7 то все долно получиться.

Худший ответ:
Стоит погуглить Native Package. Это стандартная возможность упаковать приложение вместе с подходящей для него Java-машиной для конкретной платформы. То есть, Ваше приложение будет упаковано в .exe (или формат исполняемого файла любой другой платформы) и, при его запуске, будет использовать вшитую рантайм машину. Тогда и заморачиваться с совместимостью не придется.
Пока я с этим встречался только в плагине для javafx в eclipse. Но эта возможность подразумевается в самом пакете JDK (если не ошибаюсь).
Вопрос: Как заставить работать этот код в innerHTML?

Лучший ответ:
вы, походу, не знаете что такое экранирование символов

Худший ответ:
Кавычки забыли (и экранировать их): document.getElementById("waiting").innerHTML = "<button class=btn onclick=\"this.disabled=true;this.className = (this.className == 'btn' ? 'btnss' : 'btn'\")>111</button>';И, кстати, не понимаю, зачем менять класс - другой стиль можно задать с помощью псевдокласса :disabled, а состояние в js проверять по этому же свойству, если надо
Вопрос: Что должно уметь удобное python приложение для бекапа веб-приложений?

Лучший ответ:
Варить кофе

Худший ответ:
- поддержка postgresql
- инкрементальный бэкап
- восстановление бекапа за заданную дату
- ну и конечно нужно хранить бекапы на другом сервере, хранение на том же имеет очень мало смысла
Вопрос: Убрать блок в теме wordpress?

Лучший ответ:
Здравствуйте!
Попробуйте покопать в виджетах. Скорее всего в теме регистрируется динамический сайдбар, и потом в настройках темы, в меню "Внешний вид - Виджеты", этот сайдбар заполняется каким то контентом.

Худший ответ:
Шаблон главной страницы формируется из трех частей:
index.php
header.php
footer.php
Возможно, это сделано виджетом. Как и говорил коллега. Посмотрите еще function.php, возможно это вам поможет. Там ищите крюки виджета.
Вопрос: Mysql count по условию?

Лучший ответ:
select role, count(*) from table group by role;
Если я правильно понял схему.

Худший ответ:
На постгресе такSELECT COUNT(*) as count, table.role as role
FROM 
  public.table
GROUP BY table.role;
Пусть будет :)
Вопрос: Образцовые PHP web приложения с открытым кодом для обучения?

Лучший ответ:
Мне очень понравился yii-framework. Он не так монструозен, как Zend, но написан очень грамотно.

Худший ответ:
Очень интересен dev.lithify.me/lithium. Используются все возможности php5.3 (в том числе и namespaces, интересная реализация связей классов). В общем интереснее многого чтива. Кстати, продукт этот — от одной из создателей MongoDB
Вопрос: Где взять базу областей и городов России и Украины?

Лучший ответ:
Может подойдет https://github.com/livestreet/livestreet/blob/master/install/geo_base.sql

Худший ответ:
Хорошим тоном является использовать geoip для определения географии пользователя по ip. К примеру от того же maxmind.com — там есть как платная так и бесплатная базы. Собственно список регионов и городов оттуда же.
Определяем по умолчанию по ip с возможностью изменить по списку.
Вопрос: Какой выбрать плагин jquery для поиска по странице?

Лучший ответ:
Напишите крупными буквами на странице Ctrl + F.

Худший ответ:
Поиска чего?
Вопрос: Можно ли исключить блок из overflow hidden ?

Лучший ответ:
Можно вынести элемент из потока абсолютным позиционированием jsfiddle.net/q72bs1tp/1
Т.е. если внутри элемента с overflow:hidden находится абсолютно позиционированный дочерний элемент, а родитель имеет static позиционирование, то дочерний элемент будет спозиционирован относительно ближайшего в иерархии элемента со свойством position отличным от static и не будет обрезан родителем с overflow:hidden. Тут есть ряд нюансов, но пример кроссбраузерный.
зы: как-то так можно оставить и позиционирование и overflow jsfiddle.net/q72bs1tp/2

Худший ответ:
Позволить показывать элемент за пределами предка с overflow:hidden невозможно.
А раз селекторы не работают вверх по дереву (пока), то только показывать/скрывать элемент за пределами такого предка. Управляется, конечно, скриптом.
Вопрос: Открывается только роут /, а на любые другие сревер выдает 404. В чем может быть дело?

Лучший ответ:
Информации не достаточно, но попробуйте такие решения:
1) через настройки в apache, как вам предложили в предыдущем ответе, здесь небольшая инструкция, начиная с "Настраиваем виртуальные хосты (VirtualHost)"otakoyi.com/blog/ru/ustanovka-i-nastroyka-veb-serv...
т.е. нужно сделать /laravel_site_dir/public - корневой директорией
2) либо как решение второй вариант по ссылке stackoverflow.com/questions/23837933/how-can-i-rem.... Данное решение не идеально, а из разряда "чтобы работало"

Худший ответ:
mod_rewrite включен?
Вопрос: Google Maps, работа с картой по клику на элемент DOM

Лучший ответ:
Короче пол дня гугления таки дали единственно верный результат.

После того, как вы создали объект маркера и привязали к нему инфоокно, вы можете вызвать 

$('#marker1').click(function(){
           google.maps.event.trigger(marker,"click");
           return false;
 });


и все. Дай бог, кому то поможет:)

Худший ответ:
Я чего то не понял, в чем проблема. Получаете event клика на линк, береёте объект infowindow (который создан заранее и привязан к маркеру) и вызываете у него open (или как там делают его видимым?)
Вопрос: В чем разница между «in house», «remote», «freelance»?

Лучший ответ:
In-house это не "работа у себя дома" а у работодателя, то есть в офисе. remote - удаленно но в рамках одного работадателя. freelance - на конкретный проект.

Худший ответ:
В зависмости от контекста. Тот же in-house может означать разработку внутренних продуктов или инструментов, которые никогда не увидит клиент.
Вопрос: Слияние 2 ветвей Git?

Лучший ответ:
Увы, но если git не смог сам разрешить конфликт, то однозначно сделать это автоматически нельзя.

Взять только нужные изменения можно, если просто скопировать дерево v2 поверх дерева master, а потом записать только нужные изменения при помощи git add --interactive. Все же ненужное затем убирается через git checkout ., который сбросит состояние рабочего каталога в индекс (все, что добавилось через git add, останется).

Худший ответ:
Правильно в вашем случае будет 

1) git rebase master 

из вспомогательной ветки. Вероятно, шаг включает разрешение возможных конфликтов.

2) git rebase -i HEAD^^^ 

из вспомогательной ветки. Собираем несколько коммитов вспомогательной ветки в один (опционально, но часто для аккуратного оформления коммитов требуется)

3) git merge secondary-branch --ff-only

из главной ветки. Мержим с fast-forward (то есть уже без решения конфликтов) новые коммиты из вспомогательной ветки 

То есть вы сначал внесете изменения из главной во вспомогательную ветку, а потом включите новые коммиты из вспомогательной в главную.

Иногда имеет смысл сделать git rebase -i вспомогательной ветки на саму себя, чтобы объединить ряд коммитов в один.

Если коротко. Хорошей практикой считается отсутствие коммитов слияния в главной ветке.
Вопрос: ImageCMS лицензия, как проверить?

Лучший ответ:
Скачать с оф. сайта, а вашу удалить.

Худший ответ:
можете прислать ссылку на кач?
Вопрос: Что нужно знать юристу в ИТ?

Лучший ответ:
Юристу в ИТ первым делом надо научиться искать информацию самому.

Худший ответ:
С учётом уточнения автора вопроса (если понял неправильно — заранее извиняюсь):
Если вы/они начинающие предприниматели, то, из личного опыта, не советую сильно заморачиваться с юридической стороной вопроса — выполните формальные требования для открытия интернет-магазина (регистрация, налоговая, различные инспекции). Затем, если позволяет бюджет / оборот наймите хорошего бухгалтера — он будет на первых порах на порядок полезней юриста. Если бухгалтерию ведёте сами — изучите вопросы налогообложения и отчётности.
Вопрос: Как правильно через css делать вот такие линии?

Лучший ответ:
1. CSS transform, как уже написал @fulli 
2. SVG (в качестве фона или просто вставка).
3. Старый-старый вариант с border.
4. Clip-path — предложение @DonSinDRom (webkit only)
5. linear-gradient — предложение @DonSinDRom

Худший ответ:
Вам сюда
Вопрос: Что будет с данными в ближайшие 10-20 лет? Хватит ли места хранить все данные?

Лучший ответ:
Моё мнение : с каждым днём выходят новые гаджеты они всё легче , быстрее , не ломаются так быстро, не занимают много места . Как выглядели компьютеры 10 лет назад а как сейчас ? мы стремимся к тому чтобы уменьшить разные вещи того чтобы облегчить жизнь я думаю что появится новый накопители размером с флешку способные вместить много тысяча терабайт я оптимис :)

Худший ответ:
угрозы места нет
была угроза каналам, но, похоже, ее решили, как раз в 2015-2018 звучало, что замедлится передача, т.к. контента много, и что? только LTE расширяется да дешевеет, и оптоволокно уже чуть лине в квартиру тянут
по поводу же информации: www.itogi.ru/archive/2000  вот за 14 лет создал коллектив неглупых людей, обо всем актуальном на тот момент. Таких на страну - штук 5-10. Таких стран - штук 50-100. 
И помещается оно все на один, пусть и промышленный, NAS
А фоточки котиков через 50 лет некому будет вспоминать)
Вопрос: STM32: как вызывать Delay на System Tick Timer из обработчика внешнего прерывания?

Лучший ответ:
1. Вызывать задержки изнутри обработчика прерывания — это очень плохо.
2. Функция Delay должна зависнуть. нужно пометить SysTickDelay как volatile.
3. Не помню про EXTI, но возможно, его нужно сбрасывать явно перед выходом.

Худший ответ:
1. В прерывании EXTI нужно очищать флаг прерывания для возможности повторного срабатывания этого прерывания.
2. SysTickDelay должен иметь тип uint32_t, иначе вы не используете целую половину возможного диапазона.
3. Хорошо что у вас SysTickDelay декрементируется, а то были случаи.
4. Никаких прерываний с дилеями внутри! Делайте асинхронно, с таймерами, спинлоками (это просто переменная-флаг) и т.д.
Вопрос: Что не так в Javascript?

Лучший ответ:
document.querySelector("#nav-toggle")
На странице нет такого элемента, поэтому querySelector возваращает null.
Об этом в ошибке и написано - у null нет метода addEventListener.addEventListener вызывается только в одном месте - правда, разобраться совсем не сложно.
А вообще, если уж используете jquery, так и используйте на полную катушку:if ($(window).width() > 991) {
    $("#nav-toggle").on("click", function() {
        $(this).toggleClass("active");
    });
}

Худший ответ:
Вот решениеif (window.innerWidth > 991) {
    document.querySelector("#nav-toggle").addEventListener("click", function(e) {
         e.target.classList.toggle("active");
    },false);
}
Вопрос: Как умножить каждый ДЕВЯТЫЙ элемент списка на 2?

Лучший ответ:
Твой код возможно решает какую-то проблему, но точно не описанную тобой.
См. range(start, stop[, step]):start -- первое значение интервалаstop -- последнее значение интервалаstep -- шагfor i in range(..) означает для каждого i в интервале от start до stop с шагом step. Ты передаёшь как start, stop и step значения массива samples_null_list, соответственно поведение цикла зависит от значений этого массива (а именно первого, последнего и девятого элемента).

Худший ответ:
условие такоеindex % 9 === 0
Вопрос: Почему массив POST пустой?

Лучший ответ:
1) <?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class AjaxController extends Controller {
  public function request(Request $request) {
  	if($request->ajax()){
  		$param = $request->input('param');
  		echo json_encode($param);
  	}
   }
}
2)Route::post('ajax/request', 'AjaxController@request');
3)jQuery.ajax({
  url: location.origin + '/ajax/request',
  async: false,
  type: 'POST',
  data: {'param': '32'},
  dataType: 'json',
  success: function(data) {
  	alert(data);
  },
  error: function() {
  	alert('Ошибка');
  }
});

Худший ответ:
Итак, проблема была в отсутствующем в запросе параметре "X-XSRF-TOKEN" (причем, именно так, а не "X-CSRF-TOKEN", как можно было подумать). Это одна. Вторая - в шифровании этого параметра, но ее до конца понять не удалось.
С каждым POST-запросом этот параметр должен передаваться на сервер, поэтому, на jQuery будет такой код:jQuery.ajaxSetup({
    headers: {'X-XSRF-TOKEN': jQuery('meta[name="csrf-token"]').attr('content')}
});
Здесь мы получаем значение параметра "csrf-token" из мета-тегов страницы. А записываем их туда, например, в основном файле представления:<meta name="csrf-token" content="{{ csrf_token() }}"/>
Но даже если все это сделать, сервер все равно будет умирать с сообщением "DecryptException". Информацию об этой проблеме нашел вот здесь. Правда, в итоге сделал вторым способом, так как в первом необходимость добавлять параметр каждому контроллеру показалась страшной.
То есть, я открыл файл "app/Http/Middleware/VerifyCsrfToken.php" и добавил в него такой код:use Symfony\Component\Security\Core\Util\StringUtils;
...
protected function tokensMatch($request) {
	$token = $request->session()->token();
	$header = $request->header('X-XSRF-TOKEN');
	return StringUtils::equals($token, $request->input('_token')) ||
		($header && StringUtils::equals($token, $header));
}
Функцию, конечно же, внутрь класса.
Хотелось бы в комментариях увидеть ваше мнение. Бабы говорят, что второй вариант может нести какие-то уязвимости, но я пока не очень силен в этих вопросах, поэтому буду рад любому совету по этой теме.
Вопрос: Что такое prototype в javascript?

Лучший ответ:
Что такое prototype в javascript?
По простому, это возможность использовать объект (ф-ию/переменную) "родителя" (прототипа) если нет своего объекта.
Например вы пытаетесь вызвать ф-ию form1.echoX(), т.к. её нет будет попытка вызвать form1.__proto__.echoX(), если этой нет то form1.__proto__.__proto__.echoX() и т.д.
Как "заполнять" прототип, можете найти в "любом" учебнике по JS, так же @rock привел пример.

Худший ответ:
jsfiddle.net/ck89g/1
Прототип (Конструктор.prototype) - объект, который клонируется по ссылке при создании инстанса конструктора через new. Создается объект со скрытым свойством [[prototype]], в некоторых движках свойство доступно как Инстанс.__proto__. При получении свойств инстанса, если они отсутствуют в новом объекте, движок ищет их в прототипе. Новые же свойства пишутся в инстанс, не изменяя прототип.
В примере у вас еще и проблемы с пониманием контекста вызова (this) функции. В конструкторе (при вызове через new) это будет новый, созданный из прототипа, объект. В методе это объект, от которого его вызывают (до последней точки). При вызове как функции (без точек) это глобальный объект (window). Контекст можно привязать методом функции .bind или запустить функцию в произвольном контексте - .call, .apply.
Вы добавляете метод и свойство в прототип при каждом вызове конструктора и запускаете метод в контексте прототипа, а не инстанса.
Вопрос: Комплексный учебник по php5+mysql+js(ajax)

Лучший ответ:
Все книги 3 in 1 будут хуже чем 3 кники каждая на свою тематику. Я советую найти 3 книги: пхп5, мускул5 и жс и просто все три прочитать, да, это займет больше времени, но зато так будете наверняка в теме.

Худший ответ:
По MySQL очень хорошие книжки у Поля Дюбуа, например www.ozon.ru/context/detail/id/3059177/
Вопрос: Какая почасовая ставка оптимальна?

Лучший ответ:
мне кажется сто долларов оптимально так как очень ровное число удобно обсуждать бюджеты кратные 100

Худший ответ:
Если заказов больше чем ты можешь выполнить - повышай
Вопрос: Как реализовать шестиугольные пункты меню на html+css: background, border, href-ы и hover-эффекты?

Лучший ответ:
Честные полигоны на CSS3

Худший ответ:
Пример jsfiddle.net/5h3aF
Пока набивал, меня уже опередили :)
Воспользуйтесь псевдо-элементами after и brfore, поверните их на +/-60 градусов через transform: rotate(60deg);
Работает, естественно, только в тех браузерах, которые поддерживают трансформации (IE9+)
Вопрос: Как правильно писать на Java/Scala/C#/etc?

Лучший ответ:
На Java, особенно с использованием Spring Framework, нормальная разработка примерно такова
1) делим систему на слои: слой хранения данных с интерфейсом, слой бизнес-логики с интерфейсом, слой веб-приложения или веб-сервиса (к примеру).
2) Каждый из слоев обкладывается Unit-тестами (автоматизированное тестирование), при этом остальные части системы, на которые есть зависимости, выглядят просто как интерфейсы, которые можно «эмулировать» на время тестов (техника test mocking).
3) Интеграционное тестирование (автоматизированное/полуавтоматизированное тестирование) — несколько слоев запускаются почти в реальном окружении, и тестируются вместе наподобие черного ящика. Смотрим на то, как работает система в сборе.
4) Ручное тестирование всей системы перед релизом — к этому вы как раз привыкли.

Основная работа происходит на этапах 1 и 2. Цикл тест-изменение кода-тест — происходит обычно в течение нескольких секунд, так как Unit-тесты легковесные.

Цикл разработки, описанные вами, обладает одним серьезным ограничением — никакой автоматической защиты от регрессий функциональности. Для этого и пишут тесты.

Худший ответ:
Все дело в целях и объемах приложения.
Если вам нужен маленький Application — можете хоть JSP + Servlet использовать.
Если же большое приложение со множеством модулей, интеграцией с различными системами и гибкой системой динамически подключаемых модулей — это уже совсем другие подходы а-ля Spring + Hibernate + Maven + JBoss, разделение на слои, отделение модели данных от модели предметной области и т.д.
У Вас слишком общий вопрос для конкретных рекомендаций. Хороший архитектор выбирает средства по задаче.
Вопрос: Почему вызывается ошибка: call to underfined function?

Лучший ответ:
ну на сколько я понимаю, это внутри некого класса, get_free_product_details(  ) - это метод класса, соответственно надо так, $wfg_free_products[] = $this->get_free_product_details( $product );
ну и судя по всему, в этот метод надо передавать ID продукта, а вы передаете весь объект продукта

Худший ответ:
В предпоследней строчке вызвана функция, которая неизвестна на данном этапе выполнения.
Предположу, что Вы пропустили где-то require_once и/или ошиблись в названии функции.
Вопрос: mysql slow insert Медленный запрос insert

Лучший ответ:
Неужто тут нужна InnoDB? Если памяти на табличку не хватает, то будет тормозить. Опять же судя по всему это VDS, а тут диск уже точно общий, так что другие VDS на этом сервере дают хороший тормоз.

Худший ответ:
Мне кажется, что вы пытаетесь вставить строковое значение в целочисленное поле, сиквел приводит строку целому числу и на этом теряет время, попробуйте убрать кавычки у вставляемых значений, но могу ошибаться.
Пример:
INSERT INTO `archive_hour` (`device_id`, `data_date`, `param0`,`param1`,...,`paramn`) VALUES (334, '2013-07-26 4:00:00', 0,0,...,0);
Вопрос: Скрипт для создания домашних папок пользователей домена?

Лучший ответ:
нужно просто выполнить задачу или выполнить именно на powershell?
«папка подключается как домашняя к одноименному профилю» — это как?
можно воспользоваться gpo Folder Redirection и отправить папки пользователей (тот же desktop) куда-нибудь в \\srv\profiles (тут же решается вопрос с правами), подключать эту папку стартап скриптом, ну и указать в FSRM настройки квот для подпапок.
несколько движений и никакого powershell'а.

Худший ответ:
нужно установить FSRM — квоты настраиваются там.
Вопрос: Знаете игры похожие на Foldit с уклоном на физику, математику?

Лучший ответ:
Да, есть квест - "Ландау и Лифшиц", в 10 частях.

Худший ответ:
Quantum Moves, но её критикуют, и говорят, что заявление, что люди лучше справляются, несостоятельно.
Критика:
https://arxiv.org/abs/1709.08766
https://journals.aps.org/pra/abstract/10.1103/Phys...
Вопрос: Целесообразно ли использование LAG + Mikrotik в данном случае?

Лучший ответ:
Какой трафик (bps/pps) внутри сети и наружу?
Если небольшой — то годится RB2011.
Если большой — то CCR1016.
Если внутренний большой, внешний маленький — то лучше отдельный маршрутизирующий коммутатор в ядро и отдельно шлюз на Микротике, например, RB951.

По топологии — звезда лучше, чем гирлянда.

Худший ответ:
Можно на последнем варианте сэкономить и взять MikroTik RB/493GPI. Довольно хорошая железка.
Вопрос: Как перейти в конец строки в Sublime Text 3?

Лучший ответ:
Клавиша End, не?

Худший ответ:
У меня кнопка End заела на винде, так что решила эту проблему для себя след. образом:
{ "keys": ["shift+space"], "command": "move_to", "args": {"to": "eol", "extend": false} },
Вопрос: Как включить подсветку слов в PhpStorm?

Лучший ответ:
Мне сегодня понадобилась такая же функция (привык в Notepad++ двойным кликом выделять одинаковые слова).
В PHPStorm просто создал хоткей с двойным кликом (у меня например CTRL + ALT + DoubleClick), теперь двойной клик с зажатым контрол и альт по любому слову выделяет все такие же слова (не обязательно переменные).Settings -> Keymap -> Find -> ваша_комбинация_с_кликом

Худший ответ:
Ctrl + F вписываете что хотим подсветитьЛКМ по переменной
Вопрос: Почему github не сохраняет результаты от моего имени?

Лучший ответ:
а вы дерните git log локально и увидите что у вас отличается email например.

Худший ответ:
А при установке гита настраивали пользователя? $ git config --global user.name "John Doe"
$ git config --global user.email johndoeexample.com
Вопрос: Есть ли работающие либы nodejs vk api?

Лучший ответ:
Работаю сейчас как раз с этой библиотекой (указанной выше):Есть. habrahabr.ru/post/191592
Только что проверил - работает:var VK = require('vkapi');
var vk = new VK({'mode' : 'oauth'});

vk.setToken( { token :'0c899.....99b7bc3' });

vk.request('audio.get', {
 'owner_id' : 34,
 'count' : 3
});

vk.on('done:audio.get', function(res) {
  console.log(res);
});
Авторизация через приложение, по токену.

Худший ответ:
Есть. habrahabr.ru/post/191592
Вопрос: Diablo 3 API

Лучший ответ:
Вообще сильно углубившись, я потом нашел эти мелочи случайно на корейском форуме близзард. А суть такова:
возьму для примера первого попавшегося пользователя с именем Ozzy#2223 (надеюсь ты тут не сидишь). Чтобы получить данные по его профилю смотрим здесь (в имени профиля необходимо заменить знак # на тире — ) eu.battle.net/api/d3/profile/Ozzy-2223/ , всё замечательно но описание способностей на английском, чтобы посмотреть на русском добавляем - ?locale=ru_ru, получается eu.battle.net/api/d3/profile/Ozzy-2223/?locale=ru_ru.
 А как быть тех кто с русскими именами например тоже случайный человек Ипостась#2474, пробуем — eu.battle.net/api/d3/profile/Ипостась-2474/. Нам возвращают — OOPS. И даже если добавить ?locale=ru_ru, тоже ничего не вернет. Ответ мне подсказали на форуме battle.net указывая ссылку на корейский форум, всё гораздо проще необходимо добавить в конце index и оно будет отображаться на языке которого написан профиль. Получаем — eu.battle.net/api/d3/profile/Ипостась-2474/index
 Да всё замечательно и всё работает. Но почему этого нет в документации? Зачем так всё усложнять?
Тем не менее я на скорую руку накидал тут программу для просмотра профиля по Диабло 3 — 


Худший ответ:
Сам спросил, сам нашел ответ, сам написал прогу, сам ответил, сам прокомментировал свой ответ. Всем бы так!
Вопрос: Как правильнее верстать навигацию с точки зрения семантики?

Лучший ответ:
Я почти всегда верстаю через список.
Для nav>ul>li отлично задаются стили таблицnav{
  display: table;
  table-layout: fixed;
  width: 100%;
}
ul{
  display: table-row;
}
li{
  display: table-cell;
}
Что позволяет сверстать однострочное меню с одинаковой шириной элементов
Хорошая статья (англ) по этой теме: css-tricks.com/navigation-in-lists-to-be-or-not-to-be
В ней еще советуют добавить к nav аттрибут role="navigation"

Худший ответ:
если не ошибаюсь, видел вот такой вариант написания<nav>
    <li><a href="#">Lorem</a></li>
    <li><a href="#">Lorem</a></li>    
</nav>
На w3c приведен такой пример<nav>
   <h1>Navigation</h1>
   <ul>
    <li><a href="articles.html">Index of all articles</a></li>
    <li><a href="today.html">Things sheeple need to wake up for today</a></li>
    <li><a href="successes.html">Sheeple we have managed to wake</a></li>
   </ul>
  </nav>