logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: e44f03bc712c52d3af60f9accad1133f4b6de9ba
parent: 970297a13887ff253ce2d65822ccd77a4e56c82e
Author: Sorin Davidoi <sorin.davidoi@gmail.com>
Date:   Mon, 31 Jul 2017 00:18:15 +0200

Improve accessibility (part 7) (#4457)

* fix(media_modal): Keyboard navigation

* fix(column_back_button): Use native button

* fix(media_gallery): Keyboard navigation

* fix(status_content): Make CW content focusable

Diffstat:

Mapp/javascript/mastodon/components/column_back_button.js13+++++++------
Mapp/javascript/mastodon/components/media_gallery.js4++--
Mapp/javascript/mastodon/components/status_content.js2+-
Mapp/javascript/mastodon/features/ui/components/media_modal.js14+++++---------
Mapp/javascript/mastodon/locales/ar.json2++
Mapp/javascript/mastodon/locales/bg.json2++
Mapp/javascript/mastodon/locales/ca.json2++
Mapp/javascript/mastodon/locales/de.json2++
Mapp/javascript/mastodon/locales/defaultMessages.json8++++++++
Mapp/javascript/mastodon/locales/en.json2++
Mapp/javascript/mastodon/locales/eo.json2++
Mapp/javascript/mastodon/locales/es.json2++
Mapp/javascript/mastodon/locales/fa.json2++
Mapp/javascript/mastodon/locales/fi.json2++
Mapp/javascript/mastodon/locales/fr.json2++
Mapp/javascript/mastodon/locales/he.json2++
Mapp/javascript/mastodon/locales/hr.json2++
Mapp/javascript/mastodon/locales/hu.json2++
Mapp/javascript/mastodon/locales/id.json2++
Mapp/javascript/mastodon/locales/io.json2++
Mapp/javascript/mastodon/locales/it.json2++
Mapp/javascript/mastodon/locales/ja.json2++
Mapp/javascript/mastodon/locales/ko.json2++
Mapp/javascript/mastodon/locales/nl.json2++
Mapp/javascript/mastodon/locales/no.json2++
Mapp/javascript/mastodon/locales/oc.json2++
Mapp/javascript/mastodon/locales/pl.json2++
Mapp/javascript/mastodon/locales/pt-BR.json2++
Mapp/javascript/mastodon/locales/pt.json2++
Mapp/javascript/mastodon/locales/ru.json2++
Mapp/javascript/mastodon/locales/th.json2++
Mapp/javascript/mastodon/locales/tr.json2++
Mapp/javascript/mastodon/locales/uk.json2++
Mapp/javascript/mastodon/locales/zh-CN.json2++
Mapp/javascript/mastodon/locales/zh-HK.json2++
Mapp/javascript/mastodon/locales/zh-TW.json2++
Mapp/javascript/styles/components.scss5+++++
37 files changed, 90 insertions(+), 18 deletions(-)

diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.js @@ -8,19 +8,20 @@ export default class ColumnBackButton extends React.PureComponent { router: PropTypes.object, }; - handleClick = (e) => { - if (!e.key || e.key === 'Enter') { - if (window.history && window.history.length === 1) this.context.router.history.push('/'); - else this.context.router.history.goBack(); + handleClick = () => { + if (window.history && window.history.length === 1) { + this.context.router.history.push('/'); + } else { + this.context.router.history.goBack(); } } render () { return ( - <div role='button' tabIndex='0' onClick={this.handleClick} onKeyDown={this.handleClick} className='column-back-button'> + <button onClick={this.handleClick} className='column-back-button'> <i className='fa fa-fw fa-chevron-left column-back-button__icon' /> <FormattedMessage id='column_back_button.label' defaultMessage='Back' /> - </div> + </button> ); } diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.js @@ -212,10 +212,10 @@ export default class MediaGallery extends React.PureComponent { } children = ( - <div role='button' tabIndex='0' className='media-spoiler' onClick={this.handleOpen}> + <button className='media-spoiler' onClick={this.handleOpen}> <span className='media-spoiler__warning'>{warning}</span> <span className='media-spoiler__trigger'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span> - </div> + </button> ); } else { const size = media.take(4).size; diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js @@ -155,7 +155,7 @@ export default class StatusContent extends React.PureComponent { {mentionsPlaceholder} - <div className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} /> + <div tabIndex={!hidden && 0} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} /> </div> ); } else if (this.props.onClick) { diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.js @@ -10,6 +10,8 @@ import ImageLoader from './image_loader'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, + previous: { id: 'lightbox.previous', defaultMessage: 'Previous' }, + next: { id: 'lightbox.next', defaultMessage: 'Next' }, }); @injectIntl @@ -66,16 +68,10 @@ export default class MediaModal extends ImmutablePureComponent { const index = this.getIndex(); - let leftNav, rightNav, content; + const leftNav = media.size > 1 && <button tabIndex='0' className='modal-container__nav modal-container__nav--left' onClick={this.handlePrevClick} aria-label={intl.formatMessage(messages.previous)}><i className='fa fa-fw fa-chevron-left' /></button>; + const rightNav = media.size > 1 && <button tabIndex='0' className='modal-container__nav modal-container__nav--right' onClick={this.handleNextClick} aria-label={intl.formatMessage(messages.next)}><i className='fa fa-fw fa-chevron-right' /></button>; - leftNav = rightNav = content = ''; - - if (media.size > 1) { - leftNav = <div role='button' tabIndex='0' className='modal-container__nav modal-container__nav--left' onClick={this.handlePrevClick}><i className='fa fa-fw fa-chevron-left' /></div>; - rightNav = <div role='button' tabIndex='0' className='modal-container__nav modal-container__nav--right' onClick={this.handleNextClick}><i className='fa fa-fw fa-chevron-right' /></div>; - } - - content = media.map((image) => { + const content = media.map((image) => { const width = image.getIn(['meta', 'original', 'width']) || null; const height = image.getIn(['meta', 'original', 'height']) || null; diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "عرض الردود", "home.settings": "إعدادات العمود", "lightbox.close": "إغلاق", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "تحميل ...", "media_gallery.toggle_visible": "عرض / إخفاء", "missing_indicator.label": "تعذر العثور عليه", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Затвори", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Зареждане...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Mostrar respostes", "home.settings": "Ajustos de columna", "lightbox.close": "Tancar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Carregant...", "media_gallery.toggle_visible": "Alternar visibilitat", "missing_indicator.label": "No trobat", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Antworten anzeigen", "home.settings": "Spalteneinstellungen", "lightbox.close": "Schließen", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Lade…", "media_gallery.toggle_visible": "Sichtbarkeit einstellen", "missing_indicator.label": "Nicht gefunden", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json @@ -1113,6 +1113,14 @@ { "defaultMessage": "Close", "id": "lightbox.close" + }, + { + "defaultMessage": "Previous", + "id": "lightbox.previous" + }, + { + "defaultMessage": "Next", + "id": "lightbox.next" } ], "path": "app/javascript/mastodon/features/ui/components/media_modal.json" diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Close", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Loading...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Fermi", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Ŝarĝanta...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Cerrar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Cargando...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "نمایش پاسخ‌ها", "home.settings": "تنظیمات ستون", "lightbox.close": "بستن", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "بارگیری...", "media_gallery.toggle_visible": "تغییر پیدایی", "missing_indicator.label": "پیدا نشد", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Sulje", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Ladataan...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Afficher les réponses", "home.settings": "Paramètres de la colonne", "lightbox.close": "Fermer", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Chargement…", "media_gallery.toggle_visible": "Modifier la visibilité", "missing_indicator.label": "Non trouvé", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "הצגת תגובות", "home.settings": "הגדרות טור", "lightbox.close": "סגירה", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "טוען...", "media_gallery.toggle_visible": "נראה\\בלתי נראה", "missing_indicator.label": "לא נמצא", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Pokaži odgovore", "home.settings": "Postavke Stupca", "lightbox.close": "Zatvori", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Učitavam...", "media_gallery.toggle_visible": "Preklopi vidljivost", "missing_indicator.label": "Nije nađen", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Bezárás", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Betöltés...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Tampilkan balasan", "home.settings": "Pengaturan kolom", "lightbox.close": "Tutup", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Tunggu sebentar...", "media_gallery.toggle_visible": "Tampil/Sembunyikan", "missing_indicator.label": "Tidak ditemukan", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Montrar respondi", "home.settings": "Aranji di la kolumno", "lightbox.close": "Klozar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Kargante...", "media_gallery.toggle_visible": "Chanjar videbleso", "missing_indicator.label": "Ne trovita", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Mostra risposte", "home.settings": "Impostazioni colonna", "lightbox.close": "Chiudi", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Carico...", "media_gallery.toggle_visible": "Imposta visibilità", "missing_indicator.label": "Non trovato", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "返信表示", "home.settings": "カラム設定", "lightbox.close": "閉じる", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "読み込み中...", "media_gallery.toggle_visible": "表示切り替え", "missing_indicator.label": "見つかりません", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "답글 표시", "home.settings": "컬럼 설정", "lightbox.close": "닫기", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "불러오는 중...", "media_gallery.toggle_visible": "표시 전환", "missing_indicator.label": "찾을 수 없습니다", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Reacties tonen", "home.settings": "Kolom-instellingen", "lightbox.close": "Sluiten", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Laden…", "media_gallery.toggle_visible": "Media wel/niet tonen", "missing_indicator.label": "Niet gevonden", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Vis svar", "home.settings": "Kolonneinnstillinger", "lightbox.close": "Lukk", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Laster...", "media_gallery.toggle_visible": "Veksle synlighet", "missing_indicator.label": "Ikke funnet", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Mostrar las responsas", "home.settings": "Paramètres de la colomna", "lightbox.close": "Tampar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Cargament…", "media_gallery.toggle_visible": "Modificar la visibilitat", "missing_indicator.label": "Pas trobat", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.settings": "Ustawienia kolumny", "lightbox.close": "Zamknij", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Ładowanie...", "media_gallery.toggle_visible": "Przełącz widoczność", "missing_indicator.label": "Nie znaleziono", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Mostrar as respostas", "home.settings": "Parâmetros da listagem", "lightbox.close": "Fechar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Carregando...", "media_gallery.toggle_visible": "Esconder/Mostrar", "missing_indicator.label": "Não encontrado", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Mostrar as respostas", "home.settings": "Parâmetros da listagem", "lightbox.close": "Fechar", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Carregando...", "media_gallery.toggle_visible": "Esconder/Mostrar", "missing_indicator.label": "Não encontrado", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Показывать ответы", "home.settings": "Настройки колонки", "lightbox.close": "Закрыть", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Загрузка...", "media_gallery.toggle_visible": "Показать/скрыть", "missing_indicator.label": "Не найдено", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Show replies", "home.settings": "Column settings", "lightbox.close": "Close", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Loading...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Cevapları göster", "home.settings": "Kolon ayarları", "lightbox.close": "Kapat", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Yükleniyor...", "media_gallery.toggle_visible": "Görünürlüğü değiştir", "missing_indicator.label": "Bulunamadı", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "Показувати відповіді", "home.settings": "Налаштування колонок", "lightbox.close": "Закрити", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "Завантаження...", "media_gallery.toggle_visible": "Показати/приховати", "missing_indicator.label": "Не знайдено", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "显示回应嘟文", "home.settings": "字段设置", "lightbox.close": "关闭", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "加载中……", "media_gallery.toggle_visible": "打开或关上", "missing_indicator.label": "找不到内容", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "顯示回應文章", "home.settings": "欄位設定", "lightbox.close": "關閉", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "載入中...", "media_gallery.toggle_visible": "打開或關上", "missing_indicator.label": "找不到內容", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json @@ -94,6 +94,8 @@ "home.column_settings.show_replies": "顯示回應", "home.settings": "欄位設定", "lightbox.close": "關閉", + "lightbox.next": "Next", + "lightbox.previous": "Previous", "loading_indicator.label": "讀取中...", "media_gallery.toggle_visible": "切換可見性", "missing_indicator.label": "找不到", diff --git a/app/javascript/styles/components.scss b/app/javascript/styles/components.scss @@ -1595,6 +1595,8 @@ cursor: pointer; flex: 0 0 auto; font-size: 16px; + border: 0; + text-align: start; padding: 15px; z-index: 3; @@ -2325,6 +2327,8 @@ button.icon-button.active i.fa-retweet { cursor: pointer; display: flex; flex-direction: column; + border: 0; + width: 100%; height: 100%; justify-content: center; position: relative; @@ -2398,6 +2402,7 @@ button.icon-button.active i.fa-retweet { align-items: center; background: rgba($base-overlay-background, 0.5); box-sizing: border-box; + border: 0; color: $primary-text-color; cursor: pointer; display: flex;