Merge pull request #4295 from matrix-org/t3chguy/a11y2
Accessibility fixed for Event List Summary and Composer Format Barpull/21833/head
						commit
						c094afbbe6
					
				|  | @ -20,6 +20,7 @@ import MemberAvatar from '../avatars/MemberAvatar'; | |||
| import { _t } from '../../../languageHandler'; | ||||
| import {MatrixEvent, RoomMember} from "matrix-js-sdk"; | ||||
| import {useStateToggle} from "../../../hooks/useStateToggle"; | ||||
| import AccessibleButton from "./AccessibleButton"; | ||||
| 
 | ||||
| const EventListSummary = ({events, children, threshold=3, onToggle, startExpanded, summaryMembers=[], summaryText}) => { | ||||
|     const [expanded, toggleExpanded] = useStateToggle(startExpanded); | ||||
|  | @ -42,24 +43,15 @@ const EventListSummary = ({events, children, threshold=3, onToggle, startExpande | |||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     let body; | ||||
|     if (expanded) { | ||||
|         return ( | ||||
|             <div className="mx_EventListSummary" data-scroll-tokens={eventIds}> | ||||
|                 <div className={"mx_EventListSummary_toggle"} onClick={toggleExpanded}> | ||||
|                     { _t('collapse') } | ||||
|                 </div> | ||||
|                 <div className="mx_EventListSummary_line"> </div> | ||||
|                 { children } | ||||
|             </div> | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     const avatars = summaryMembers.map((m) => <MemberAvatar key={m.userId} member={m} width={14} height={14} />); | ||||
|     return ( | ||||
|         <div className="mx_EventListSummary" data-scroll-tokens={eventIds}> | ||||
|             <div className={"mx_EventListSummary_toggle"} onClick={toggleExpanded}> | ||||
|                 { _t('expand') } | ||||
|             </div> | ||||
|         body = <React.Fragment> | ||||
|             <div className="mx_EventListSummary_line"> </div> | ||||
|             { children } | ||||
|         </React.Fragment>; | ||||
|     } else { | ||||
|         const avatars = summaryMembers.map((m) => <MemberAvatar key={m.userId} member={m} width={14} height={14} />); | ||||
|         body = ( | ||||
|             <div className="mx_EventTile_line"> | ||||
|                 <div className="mx_EventTile_info"> | ||||
|                     <span className="mx_EventListSummary_avatars" onClick={toggleExpanded}> | ||||
|  | @ -70,6 +62,15 @@ const EventListSummary = ({events, children, threshold=3, onToggle, startExpande | |||
|                     </span> | ||||
|                 </div> | ||||
|             </div> | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     return ( | ||||
|         <div className="mx_EventListSummary" data-scroll-tokens={eventIds}> | ||||
|             <AccessibleButton className="mx_EventListSummary_toggle" onClick={toggleExpanded} aria-expanded={expanded}> | ||||
|                 { expanded ? _t('collapse') : _t('expand') } | ||||
|             </AccessibleButton> | ||||
|             { body } | ||||
|         </div> | ||||
|     ); | ||||
| }; | ||||
|  |  | |||
|  | @ -19,12 +19,13 @@ import PropTypes from 'prop-types'; | |||
| import { _t } from '../../../languageHandler'; | ||||
| import * as sdk from '../../../index'; | ||||
| import classNames from 'classnames'; | ||||
| import AccessibleButton from "../elements/AccessibleButton"; | ||||
| 
 | ||||
| export default class MessageComposerFormatBar extends React.PureComponent { | ||||
|     static propTypes = { | ||||
|         onAction: PropTypes.func.isRequired, | ||||
|         shortcuts: PropTypes.object.isRequired, | ||||
|     } | ||||
|     }; | ||||
| 
 | ||||
|     constructor(props) { | ||||
|         super(props); | ||||
|  | @ -64,7 +65,7 @@ class FormatButton extends React.PureComponent { | |||
|         icon: PropTypes.string.isRequired, | ||||
|         shortcut: PropTypes.string, | ||||
|         visible: PropTypes.bool, | ||||
|     } | ||||
|     }; | ||||
| 
 | ||||
|     render() { | ||||
|         const InteractiveTooltip = sdk.getComponent('elements.InteractiveTooltip'); | ||||
|  | @ -82,11 +83,12 @@ class FormatButton extends React.PureComponent { | |||
| 
 | ||||
|         return ( | ||||
|             <InteractiveTooltip content={tooltipContent} forceHidden={!this.props.visible}> | ||||
|                 <span aria-label={this.props.label} | ||||
|                    role="button" | ||||
|                    onClick={this.props.onClick} | ||||
|                    className={className}> | ||||
|                 </span> | ||||
|                 <AccessibleButton | ||||
|                     as="span" | ||||
|                     role="button" | ||||
|                     onClick={this.props.onClick} | ||||
|                     aria-label={this.props.label} | ||||
|                     className={className} /> | ||||
|             </InteractiveTooltip> | ||||
|         ); | ||||
|     } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Michael Telatynski
						Michael Telatynski