Я работаю над тем, чтобы сделать один из веб-сайтов AEM моего клиента доступным. Для того же я хочу, чтобы атрибут «aria-label» был добавлен (значение может быть указано в диалоге создания) к тегу привязки, когда выбрана цель «Новая вкладка». Не удалось найти много вокруг него, по следующей ссылке описано, что мы можем настроить rtePlugin/linkPicker. Но не смог разобраться в своей проблеме. Любая помощь / руководство
Добавить атрибут для привязки в текстовом редакторе AEM Rich Text Link
Ответы (2)
Вариант 1) Повторное использование Alt Text
/title из анкорной ссылки otb. Нет необходимости настраивать диалог. Когда Alt Text
создано, otb будет заполнять заголовок следующим образом <a title="Google" href="htttps://www.google.com">Google Link</a>
Затем вам нужно будет написать преобразователь ссылок, чтобы скопировать заголовок в арию. -метка. Рерайтер будет искать теги привязки; если заголовок присутствует, скопируйте в новый атрибут aria-label и перепишите якорь. Если переписать ссылку сложно, вы также можете переписать текст RTE из модели слинга, сохранив текст RTE. Используйте парсер Jsoup для анализа HTML, перепишите копирование заголовка в aria-label и запись обратно в JCR.
Вариант 2) Добавление нового текстового поля для aria-label в диалог. Вы можете обратиться к этому запись в блоге. Но эта опция нужна только тогда, когда Alt text
отличается от aria-label, что интересно, почему. Обычно aria-label и title совпадают, и варианта 1 выше будет достаточно.
Итак, наконец, удалось добавить атрибут aria-label с устранением неполадок. Более того, шаги в ссылках, упомянутых выше, одинаковы. Хотите добавить дополнительные детали, с которыми я столкнулся
- Добавление нового поля
Выполните действия, описанные в блог После добавления поля, как указано в блоге, новый добавленный атрибут будет отфильтрован AEM. Вы увидите следующую ошибку в файле error.log
Ошибка : "26.09.2017 12:40:42.804 INFO [0:0:0:0:0:0:0:1 [1506447642680] GET /content/we -retail/language-masters/en.html HTTP/1.1] org.apache.sling.xss.impl.HtmlToHtmlContentContext Предупреждение AntiSamy: тег a содержит атрибут, который мы не можем обработать. Атрибут rel имеет значение «bookmark». . Это значение не может быть принято по соображениям безопасности. Мы решили удалить этот атрибут из тега и оставить все остальное на месте, чтобы мы могли обработать ввод».
Решение. Объявите атрибут в файле конфигурации AntiSamy в CRXDE Light. Примечание: внесите следующие изменения в /apps/cq/xssprotection/config.xml (наложение /libs/cq/xssprotection/config.xml), для Sightly/HTL это /libs/ слинг/xss/config.xml
Скопируйте /libs/cq/xssprotection/config.xml в /apps/cq/xssprotection/config.xml.
Откройте /apps/cq/xssprotection/config.xml. В разделе common-attributes добавьте следующее объявление целевого атрибута.
<attribute name="aria-label> <regexp-list> <regexp value="[a-zA-Z0-9-_\$]+" /> </regexp-list> </attribute>
Найдите объявление тега, выполнив поиск по термину
<tag name="a"
.Добавьте строку ниже в список атрибутов:
<attribute name="aria-label" />
Сохраните файл. Теперь ссылка будет открываться в новом окне, если опция выбрана.