]> cat aescling's git repositories - mastodon.git/commitdiff
Add aria-label to column regions (#8390)
authorEugen Rochko <eugen@zeonfederated.com>
Thu, 23 Aug 2018 15:26:21 +0000 (17:26 +0200)
committerGitHub <noreply@github.com>
Thu, 23 Aug 2018 15:26:21 +0000 (17:26 +0200)
Fix #4485

15 files changed:
app/javascript/mastodon/components/column.js
app/javascript/mastodon/features/community_timeline/index.js
app/javascript/mastodon/features/compose/index.js
app/javascript/mastodon/features/direct_timeline/index.js
app/javascript/mastodon/features/favourited_statuses/index.js
app/javascript/mastodon/features/getting_started/index.js
app/javascript/mastodon/features/hashtag_timeline/index.js
app/javascript/mastodon/features/home_timeline/index.js
app/javascript/mastodon/features/list_timeline/index.js
app/javascript/mastodon/features/notifications/index.js
app/javascript/mastodon/features/public_timeline/index.js
app/javascript/mastodon/features/standalone/community_timeline/index.js
app/javascript/mastodon/features/standalone/public_timeline/index.js
app/javascript/mastodon/features/status/index.js
app/javascript/mastodon/features/trends/index.js [deleted file]

index e81236d265f2696b17822272def564dd96c83bf2..d453874636ed50261fabca67f0a61e2907111b06 100644 (file)
@@ -7,6 +7,7 @@ export default class Column extends React.PureComponent {
 
   static propTypes = {
     children: PropTypes.node,
+    label: PropTypes.string,
   };
 
   scrollTop () {
@@ -40,10 +41,10 @@ export default class Column extends React.PureComponent {
   }
 
   render () {
-    const { children } = this.props;
+    const { label, children } = this.props;
 
     return (
-      <div role='region' className='column' ref={this.setRef}>
+      <div role='region' aria-label={label} className='column' ref={this.setRef}>
         {children}
       </div>
     );
index 1cd5cf157db64d7222713578682817dc57e6dc29..48d2b3f682fa6e30063bd539180aa4e4164ce7dd 100644 (file)
@@ -105,7 +105,7 @@ export default class CommunityTimeline extends React.PureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='users'
           active={hasUnread}
index df1ec491500de1c1b14280e1f5c2cac5ce2a1a9a..b7394a39efdbae9e8bd949a5abe235526f73bab5 100644 (file)
@@ -22,6 +22,7 @@ const messages = defineMessages({
   community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
   preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
   logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
+  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },
 });
 
 const mapStateToProps = (state, ownProps) => ({
@@ -95,7 +96,7 @@ export default class Compose extends React.PureComponent {
     }
 
     return (
-      <div className='drawer'>
+      <div className='drawer' role='region' aria-label={intl.formatMessage(messages.compose)}>
         {header}
 
         {(multiColumn || isSearchPage) && <SearchContainer /> }
index 2181c75b68a35dd50fd07570c54f816c187084cb..dd289ce56fc2bf1726f5a6e3b01b170a6e98e2f7 100644 (file)
@@ -76,7 +76,7 @@ export default class DirectTimeline extends React.PureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='envelope'
           active={hasUnread}
index 3973ed3cba72bdacf42a5ecb5396ba793e4fea4d..55fee88e652d5a8bc14a05f16c07d66690901eaa 100644 (file)
@@ -72,7 +72,7 @@ export default class Favourites extends ImmutablePureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.heading)}>
         <ColumnHeader
           icon='star'
           title={intl.formatMessage(messages.heading)}
index 95af8997eb8639fe57f2fed7662a9838c3c7e46a..f34ac6b8aaeb7516c3277b9277208bed83ebb8bc 100644 (file)
@@ -31,6 +31,7 @@ const messages = defineMessages({
   discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },
   personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },
   security: { id: 'navigation_bar.security', defaultMessage: 'Security' },
+  menu: { id: 'getting_started.heading', defaultMessage: 'Getting started' },
 });
 
 const mapStateToProps = state => ({
@@ -115,7 +116,7 @@ export default class GettingStarted extends ImmutablePureComponent {
     }
 
     return (
-      <Column>
+      <Column label={intl.formatMessage(messages.menu)}>
         {multiColumn && <div className='column-header__wrapper'>
           <h1 className='column-header'>
             <button>
index 15fca9ab4e96833b61035b974fc991ec5b0de634..b67486f07dd0ecb898c8ed418df6c313bd233b4c 100644 (file)
@@ -89,7 +89,7 @@ export default class HashtagTimeline extends React.PureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={`#${id}`}>
         <ColumnHeader
           icon='hashtag'
           active={hasUnread}
index 4e6853c5bc90f19e7ba720f39428d2cb0760ba7c..12dab0e44e02d084aacee2af16315ddbb0e8545b 100644 (file)
@@ -98,7 +98,7 @@ export default class HomeTimeline extends React.PureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='home'
           active={hasUnread}
index 5c40fb758981d94e1f148c0e146851d25002f28f..164669e89c70d2ff96ff84116c38ce59752f0737 100644 (file)
@@ -137,7 +137,7 @@ export default class ListTimeline extends React.PureComponent {
     }
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={title}>
         <ColumnHeader
           icon='list-ul'
           active={hasUnread}
index 94a46b833333776b12b4f3b822b834380cfe7c0a..b7d7f361c85b55a62da05d4c520ec4d7f2296e12 100644 (file)
@@ -165,7 +165,7 @@ export default class Notifications extends React.PureComponent {
     );
 
     return (
-      <Column ref={this.setColumnRef}>
+      <Column ref={this.setColumnRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='bell'
           active={isUnread}
index 5f7ac5fc720518ee8c4d0eb6f610d2fbdfbe2ff1..6d5c4118da4e9632e52af7ea3525aa5604bdb237 100644 (file)
@@ -112,7 +112,7 @@ export default class PublicTimeline extends React.PureComponent {
     const pinned = !!columnId;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='globe'
           active={hasUnread}
index 629d058a26c0407397d5f8d70bc1f7712a380255..c8ae9b3048b3c3f463a3834277bf0c53d7c8b8aa 100644 (file)
@@ -51,7 +51,7 @@ export default class CommunityTimeline extends React.PureComponent {
     const { intl } = this.props;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='users'
           title={intl.formatMessage(messages.title)}
index 1236cb92730f5640aa6ce9a0f3e9524eaac74f27..115c51d85a75ec10c397655d027ba27934e52e34 100644 (file)
@@ -51,7 +51,7 @@ export default class PublicTimeline extends React.PureComponent {
     const { intl } = this.props;
 
     return (
-      <Column ref={this.setRef}>
+      <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>
         <ColumnHeader
           icon='globe'
           title={intl.formatMessage(messages.title)}
index e506733b407c754d510b4d4edc288ead82295d91..98b321dbdb7ea8e25e0c23ae6885855fe6420738 100644 (file)
@@ -52,6 +52,7 @@ const messages = defineMessages({
   blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
   revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
   hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },
+  detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
 });
 
 const makeMapStateToProps = () => {
@@ -404,7 +405,7 @@ export default class Status extends ImmutablePureComponent {
     };
 
     return (
-      <Column>
+      <Column label={intl.formatMessage(messages.detailedStatus)}>
         <ColumnHeader
           showBackButton
           extraButton={(
diff --git a/app/javascript/mastodon/features/trends/index.js b/app/javascript/mastodon/features/trends/index.js
deleted file mode 100644 (file)
index f33af3e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import ImmutablePropTypes from 'react-immutable-proptypes';
-import ImmutablePureComponent from 'react-immutable-pure-component';
-import { connect } from 'react-redux';
-import { injectIntl, defineMessages } from 'react-intl';
-import Column from '../ui/components/column';
-import ColumnHeader from '../../components/column_header';
-import Hashtag from '../../components/hashtag';
-import classNames from 'classnames';
-import { fetchTrends } from '../../actions/trends';
-
-const messages = defineMessages({
-  title: { id: 'trends.header', defaultMessage: 'Trending now' },
-  refreshTrends: { id: 'trends.refresh', defaultMessage: 'Refresh trends' },
-});
-
-const mapStateToProps = state => ({
-  trends: state.getIn(['trends', 'items']),
-  loading: state.getIn(['trends', 'isLoading']),
-});
-
-const mapDispatchToProps = dispatch => ({
-  fetchTrends: () => dispatch(fetchTrends()),
-});
-
-@connect(mapStateToProps, mapDispatchToProps)
-@injectIntl
-export default class Trends extends ImmutablePureComponent {
-
-  static propTypes = {
-    intl: PropTypes.object.isRequired,
-    trends: ImmutablePropTypes.list,
-    fetchTrends: PropTypes.func.isRequired,
-    loading: PropTypes.bool,
-  };
-
-  componentDidMount () {
-    this.props.fetchTrends();
-  }
-
-  handleRefresh = () => {
-    this.props.fetchTrends();
-  }
-
-  render () {
-    const { trends, loading, intl } = this.props;
-
-    return (
-      <Column>
-        <ColumnHeader
-          icon='fire'
-          title={intl.formatMessage(messages.title)}
-          extraButton={(
-            <button className='column-header__button' title={intl.formatMessage(messages.refreshTrends)} aria-label={intl.formatMessage(messages.refreshTrends)} onClick={this.handleRefresh}><i className={classNames('fa', 'fa-refresh', { 'fa-spin': loading })} /></button>
-          )}
-        />
-
-        <div className='scrollable'>
-          {trends && trends.map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}
-        </div>
-      </Column>
-    );
-  }
-
-}