Compare commits

...

1 Commits

Author SHA1 Message Date
Marcos
1a5ae3939b feat: Updated Courseware Search results for SR 2025-03-24 17:28:47 -03:00
7 changed files with 584 additions and 422 deletions

View File

@@ -63,6 +63,7 @@ export const CoursewareSearchResultsFilter = ({ intl }) => {
variant="tabs"
activeKey={activeKey}
onSelect={setFilter}
aria-label={intl.formatMessage(messages.searchResultsFilterDescription)}
>
{filters.filter(({ count }) => (count > 0)).map(({ key, label }) => (
<Tab key={key} eventKey={key} title={label} data-testid={`courseware-search-results-tabs-${key}`}>

View File

@@ -141,7 +141,15 @@ const CoursewareSearch = ({ ...sectionProps }) => {
</Button>
</div>
</div>
<div className="courseware-search__results" aria-live="polite" data-testid="courseware-search-results">
<div
key={status}
className="courseware-search__results"
aria-live="assertive"
aria-atomic="true"
aria-busy={status === 'loading'}
data-testid="courseware-search-results"
role={status === 'results' ? 'alert' : 'none'}
>
{status === 'loading' ? (
<div className="courseware-search__spinner" data-testid="courseware-search-spinner">
<Spinner animation="border" variant="light" screenReaderText={formatMessage(messages.loading)} />
@@ -157,8 +165,6 @@ const CoursewareSearch = ({ ...sectionProps }) => {
{total > 0 ? (
<div
className="courseware-search__results-summary"
aria-relevant="all"
aria-atomic="true"
data-testid="courseware-search-summary"
>{formatMessage(messages.searchResultsLabel, { total, keyword: lastSearchKeyword })}
</div>

View File

@@ -244,7 +244,7 @@ describe('CoursewareSearch', () => {
expect(screen.queryByTestId('courseware-search-summary')).not.toBeInTheDocument();
});
it('should show a summary for the results within a container with aria-live="polite"', () => {
it('should show a wrapper div with proper aria attributes', () => {
mockModels({
searchKeyword: 'fubar',
total: 1,
@@ -253,7 +253,9 @@ describe('CoursewareSearch', () => {
const results = screen.queryByTestId('courseware-search-results');
expect(results).toHaveAttribute('aria-live', 'polite');
expect(results).toHaveAttribute('aria-live', 'assertive');
expect(results).toHaveAttribute('aria-atomic', 'true');
expect(results).toHaveAttribute('role', 'alert');
expect(within(results).queryByTestId('courseware-search-summary').textContent).toBe('Results for "fubar":');
});
});

View File

@@ -1,4 +1,4 @@
import React from 'react';
import { useIntl } from '@edx/frontend-platform/i18n';
import {
Folder, TextFields, VideoCamera, Article,
} from '@openedx/paragon/icons';
@@ -6,6 +6,7 @@ import { getConfig } from '@edx/frontend-platform';
import { Icon } from '@openedx/paragon';
import PropTypes from 'prop-types';
import CoursewareSearchEmpty from './CoursewareSearchEmpty';
import messages from './messages';
const iconTypeMapping = {
text: TextFields,
@@ -21,6 +22,8 @@ const CoursewareSearchResults = ({ results = [] }) => {
return <CoursewareSearchEmpty />;
}
const { formatMessage } = useIntl();
const baseUrl = `${getConfig().LMS_BASE_URL}`;
return (
@@ -42,24 +45,30 @@ const CoursewareSearchResults = ({ results = [] }) => {
rel: 'nofollow',
} : { href: `${baseUrl}${url}` };
const ariaSeaparator = formatMessage(messages.searchResultsBreadcrumbSeparator);
const ariaLocation = location?.length ? formatMessage(messages.searchResultsBreadcrumb, { path: location.join(ariaSeaparator) }) : '';
return (
<a key={id} className="courseware-search-results__item" {...linkProps}>
<div className="courseware-search-results__icon"><Icon src={icon} /></div>
<div className="courseware-search-results__info">
<div className="courseware-search-results__title">
<span>{title}</span>
{contentHits ? (<em>{contentHits}</em>) : null }
<h3>{title}</h3>
{contentHits ? (<em aria-hidden="true">{contentHits}</em>) : null }
</div>
{location?.length ? (
<ul className="courseware-search-results__breadcrumbs">
{
<div aria-label={ariaLocation}>
{location?.length ? (
<ul className="courseware-search-results__breadcrumbs" aria-hidden="true">
{
// This ignore is necessary because the breadcrumb texts might have duplicates.
// The breadcrumbs are not expected to change.
// eslint-disable-next-line react/no-array-index-key
location.map((breadcrumb, i) => (<li key={`${i}:${breadcrumb}`}><div>{breadcrumb}</div></li>))
}
</ul>
) : null}
</ul>
) : null}
</div>
</div>
</a>
);

View File

@@ -38,24 +38,29 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Demo Course Overview
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Introduction, then Demo Course Overview."
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -91,32 +96,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Passing a Course
</span>
<em>
</h3>
<em
aria-hidden="true"
>
1
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: About Exams and Certificates, then edX Exams, then Passing a Course."
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Passing a Course
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Passing a Course
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -152,29 +164,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Passing a Course
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: About Exams and Certificates, then edX Exams, then Passing a Course."
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Passing a Course
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Passing a Course
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -210,29 +227,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Text Input
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Homework - Question Styles, then Text input."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Text input
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Text input
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -268,29 +290,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Pointing on a Picture
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Homework - Question Styles, then Pointing on a Picture."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Pointing on a Picture
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Pointing on a Picture
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -326,29 +353,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Getting Answers
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: About Exams and Certificates, then edX Exams, then Getting Answers."
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Getting Answers
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Getting Answers
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -384,32 +416,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Welcome!
</span>
<em>
</h3>
<em
aria-hidden="true"
>
30
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Introduction, then Demo Course Overview, then Introduction: Video and Sequences."
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
<li>
<div>
Introduction: Video and Sequences
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
<li>
<div>
Introduction: Video and Sequences
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -445,29 +484,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Multiple Choice Questions
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Homework - Question Styles, then Multiple Choice Questions."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Multiple Choice Questions
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Multiple Choice Questions
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -503,29 +547,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Numerical Input
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Homework - Question Styles, then Numerical Input."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Numerical Input
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Homework - Question Styles
</div>
</li>
<li>
<div>
Numerical Input
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -561,32 +610,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Connecting a Circuit and a Circuit Diagram
</span>
<em>
</h3>
<em
aria-hidden="true"
>
3
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Lesson 1 - Getting Started, then Video Presentation Styles."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
Video Presentation Styles
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
Video Presentation Styles
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -622,29 +678,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
CAPA
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 2: Get Interactive, then Homework - Labs and Demos, then Code Grader."
>
<li>
<div>
Example Week 2: Get Interactive
</div>
</li>
<li>
<div>
Homework - Labs and Demos
</div>
</li>
<li>
<div>
Code Grader
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 2: Get Interactive
</div>
</li>
<li>
<div>
Homework - Labs and Demos
</div>
</li>
<li>
<div>
Code Grader
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -680,29 +741,34 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Interactive Questions
</span>
</h3>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Lesson 1 - Getting Started, then Interactive Questions."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
Interactive Questions
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
Interactive Questions
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -738,32 +804,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Blank HTML Page
</span>
<em>
</h3>
<em
aria-hidden="true"
>
6
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Introduction, then Demo Course Overview, then Introduction: Video and Sequences."
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
<li>
<div>
Introduction: Video and Sequences
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Introduction
</div>
</li>
<li>
<div>
Demo Course Overview
</div>
</li>
<li>
<div>
Introduction: Video and Sequences
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -799,32 +872,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Discussion Forums
</span>
<em>
</h3>
<em
aria-hidden="true"
>
5
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 3: Be Social, then Lesson 3 - Be Social, then Discussion Forums."
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Discussion Forums
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Discussion Forums
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -860,32 +940,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Overall Grade
</span>
<em>
</h3>
<em
aria-hidden="true"
>
7
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: About Exams and Certificates, then edX Exams, then Overall Grade Performance."
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Overall Grade Performance
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
Overall Grade Performance
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -921,32 +1008,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Blank HTML Page
</span>
<em>
</h3>
<em
aria-hidden="true"
>
3
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 3: Be Social, then Lesson 3 - Be Social, then Homework - Find Your Study Buddy."
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -982,32 +1076,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Find Your Study Buddy
</span>
<em>
</h3>
<em
aria-hidden="true"
>
3
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 3: Be Social, then Homework - Find Your Study Buddy, then Homework - Find Your Study Buddy."
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
<li>
<div>
Homework - Find Your Study Buddy
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -1043,32 +1144,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
Be Social
</span>
<em>
</h3>
<em
aria-hidden="true"
>
4
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 3: Be Social, then Lesson 3 - Be Social, then Be Social."
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Be Social
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 3: Be Social
</div>
</li>
<li>
<div>
Lesson 3 - Be Social
</div>
</li>
<li>
<div>
Be Social
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -1104,32 +1212,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
EdX Exams
</span>
<em>
</h3>
<em
aria-hidden="true"
>
4
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: About Exams and Certificates, then edX Exams, then EdX Exams."
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
EdX Exams
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
About Exams and Certificates
</div>
</li>
<li>
<div>
edX Exams
</div>
</li>
<li>
<div>
EdX Exams
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -1165,32 +1280,39 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
When Are Your Exams?
</span>
<em>
</h3>
<em
aria-hidden="true"
>
2
</em>
</div>
<ul
class="courseware-search-results__breadcrumbs"
<div
aria-label="Location: Example Week 1: Getting Started, then Lesson 1 - Getting Started, then When Are Your Exams? ."
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
When Are Your Exams?
</div>
</li>
</ul>
<ul
aria-hidden="true"
class="courseware-search-results__breadcrumbs"
>
<li>
<div>
Example Week 1: Getting Started
</div>
</li>
<li>
<div>
Lesson 1 - Getting Started
</div>
</li>
<li>
<div>
When Are Your Exams?
</div>
</li>
</ul>
</div>
</div>
</a>
<a
@@ -1228,10 +1350,13 @@ exports[`CoursewareSearchResults when list of results is provided should match t
<div
class="courseware-search-results__title"
>
<span>
<h3>
External Course Link Test
</span>
</h3>
</div>
<div
aria-label=""
/>
</div>
</a>
</div>

View File

@@ -101,6 +101,11 @@
font-size: 0.875rem;
color: $black;
> h3 {
font-size: inherit;
margin: 0;
}
> span {
display: block;
overflow: hidden;

View File

@@ -56,7 +56,21 @@ const messages = defineMessages({
defaultMessage: 'There was an error on the search process. Please try again in a few minutes. If the problem persists, please contact the support team.',
description: 'Error message to show to the users when there\'s an error with the endpoint or the returned payload format.',
},
searchResultsFilterDescription: {
id: 'learn.coursewareSearch.searchResultsFilterDescription',
defaultMessage: 'Search result filters',
description: 'Screen Reader text to describe the filter options.',
},
searchResultsBreadcrumb: {
id: 'learn.coursewareSearch.searchResultsBreadcrumb',
defaultMessage: 'Location: {path}.',
description: 'Screen Reader text to describe the search result breadcrumbs.',
},
searchResultsBreadcrumbSeparator: {
id: 'learn.searchResultsBreadcrumbSeparator',
defaultMessage: ', then ',
description: 'Screen Reader text to connect breadcrumb sections. i.e.: "Introduction, then Register, then Something else.',
},
// These are translations for labeling the filters
'filter:all': {
id: 'learn.coursewareSearch.filter:all',