]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11751 SONAR-11748 Use semantically correct elements on Projects page
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Tue, 23 Feb 2021 10:25:46 +0000 (11:25 +0100)
committersonartech <sonartech@sonarsource.com>
Wed, 3 Mar 2021 20:12:51 +0000 (20:12 +0000)
17 files changed:
server/sonar-web/src/main/js/app/styles/init/misc.css
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
server/sonar-web/src/main/js/apps/projects/components/FavoriteFilter.tsx
server/sonar-web/src/main/js/apps/projects/components/PageHeader.tsx
server/sonar-web/src/main/js/apps/projects/components/PageSidebar.tsx
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/FavoriteFilter-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageHeader-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/components/project-card/ProjectCard.tsx
server/sonar-web/src/main/js/apps/projects/components/project-card/__tests__/__snapshots__/ProjectCard-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/filters/FilterHeader.tsx
server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/FilterHeader-test.tsx.snap
server/sonar-web/src/main/js/apps/projects/visualizations/Visualizations.tsx
server/sonar-web/src/main/js/apps/projects/visualizations/__tests__/__snapshots__/Visualizations-test.tsx.snap
server/sonar-web/src/main/js/components/search-navigator.css
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index 920e5ddfc267a3fa95b2c1abb0f038c61f218530..6e6ba4d39c83bc4607638f500dff4fe390922ef8 100644 (file)
@@ -39,6 +39,15 @@ th.hide-overflow {
   visibility: hidden !important;
 }
 
+.a11y-hidden {
+  position: absolute;
+  left: -10000px;
+  top: auto;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+}
+
 .invisible {
   visibility: hidden;
 }
index 9e61241f479bfa266a9b2c443bd13abae2dd76aa..185be554b6de453356b7ebec56420e8158f4d020 100644 (file)
@@ -224,7 +224,10 @@ export class AllProjects extends React.PureComponent<Props, State> {
   renderSide = () => (
     <ScreenPositionHelper className="layout-page-side-outer">
       {({ top }) => (
-        <div className="layout-page-side projects-page-side" style={{ top }}>
+        <section
+          aria-label={translate('filters')}
+          className="layout-page-side projects-page-side"
+          style={{ top }}>
           <div className="layout-page-side-inner">
             <div className="layout-page-filters">
               <A11ySkipTarget
@@ -244,7 +247,7 @@ export class AllProjects extends React.PureComponent<Props, State> {
               />
             </div>
           </div>
-        </div>
+        </section>
       )}
     </ScreenPositionHelper>
   );
@@ -317,13 +320,18 @@ export class AllProjects extends React.PureComponent<Props, State> {
         <Suggestions suggestions="projects" />
         <Helmet defer={false} title={translate('projects.page')} />
 
+        <h1 className="a11y-hidden">{translate('projects.page')}</h1>
+
         {this.renderSide()}
 
         <div className="layout-page-main">
           <A11ySkipTarget anchor="projects_main" />
 
-          {this.renderHeader()}
-          {this.renderMain()}
+          <div role="main">
+            <h2 className="a11y-hidden">{translate('list_of_projects')}</h2>
+            {this.renderHeader()}
+            {this.renderMain()}
+          </div>
         </div>
       </div>
     );
index d4ed964fefe869777074fec1840246ed42d619ba..20969b7bb67757ea63fd58bde705a506f43e1389 100644 (file)
@@ -47,7 +47,7 @@ export default class FavoriteFilter extends React.PureComponent<Props> {
     const pathnameForAll = '/projects';
 
     return (
-      <header className="page-header text-center">
+      <div className="page-header text-center">
         <div className="button-group little-spacer-top">
           <Link
             activeClassName="button-active"
@@ -66,7 +66,7 @@ export default class FavoriteFilter extends React.PureComponent<Props> {
             {translate('all')}
           </IndexLink>
         </div>
-      </header>
+      </div>
     );
   }
 }
index d0fb81c5b52b750f1f61ec1b9b37d54de2a21b6d..c954611367a73136c4c5b1e9b6ce769105f5fa60 100644 (file)
@@ -52,7 +52,7 @@ export default function PageHeader(props: Props) {
   const sortingDisabled = view === 'visualizations' && !limitReached;
 
   return (
-    <header className="page-header">
+    <div className="page-header">
       <div className="display-flex-space-between spacer-top">
         <SearchFilterContainer onQueryChange={props.onQueryChange} query={props.query} />
         <div className="display-flex-center">
@@ -97,6 +97,6 @@ export default function PageHeader(props: Props) {
           </Tooltip>
         </div>
       </div>
-    </header>
+    </div>
   );
 }
index 0ffaf0986cbe828e289e2d36cf5af7104f9cdf5e..9097005dbf9d617e95edfaea131a7c054e71bd8f 100644 (file)
@@ -75,7 +75,7 @@ export default function PageSidebar(props: PageSidebarProps) {
       <div className="projects-facets-header clearfix">
         {isFiltered && <ClearAll onClearAll={props.onClearAll} />}
 
-        <h3>{translate('filters')}</h3>
+        <h2 className="h3">{translate('filters')}</h2>
       </div>
       <QualityGateFilter {...facetProps} facet={getFacet(facets, 'gate')} value={query.gate} />
       {!isLeakView && (
index a4497f47c20f05833a6dffa9492cadc353e399b3..0d57d3d1949dfa5d6f5bf296208e81a07164f6b7 100644 (file)
@@ -40,6 +40,11 @@ exports[`renders 1`] = `
     encodeSpecialCharacters={true}
     title="projects.page"
   />
+  <h1
+    className="a11y-hidden"
+  >
+    projects.page
+  </h1>
   <ScreenPositionHelper
     className="layout-page-side-outer"
   >
@@ -52,129 +57,138 @@ exports[`renders 1`] = `
       anchor="projects_main"
     />
     <div
-      className="layout-page-header-panel layout-page-main-header"
+      role="main"
     >
+      <h2
+        className="a11y-hidden"
+      >
+        list_of_projects
+      </h2>
       <div
-        className="layout-page-header-panel-inner layout-page-main-header-inner"
+        className="layout-page-header-panel layout-page-main-header"
       >
         <div
-          className="layout-page-main-inner"
+          className="layout-page-header-panel-inner layout-page-main-header-inner"
         >
-          <PageHeader
-            currentUser={
-              Object {
-                "isLoggedIn": true,
+          <div
+            className="layout-page-main-inner"
+          >
+            <PageHeader
+              currentUser={
+                Object {
+                  "isLoggedIn": true,
+                }
               }
-            }
-            loading={false}
-            onPerspectiveChange={[Function]}
-            onQueryChange={[Function]}
-            onSortChange={[Function]}
-            projects={
-              Array [
+              loading={false}
+              onPerspectiveChange={[Function]}
+              onQueryChange={[Function]}
+              onSortChange={[Function]}
+              projects={
+                Array [
+                  Object {
+                    "key": "foo",
+                    "measures": Object {},
+                    "name": "Foo",
+                    "qualifier": "TRK",
+                    "tags": Array [],
+                    "visibility": "public",
+                  },
+                ]
+              }
+              query={
                 Object {
-                  "key": "foo",
-                  "measures": Object {},
-                  "name": "Foo",
-                  "qualifier": "TRK",
-                  "tags": Array [],
-                  "visibility": "public",
-                },
-              ]
-            }
-            query={
-              Object {
-                "coverage": undefined,
-                "duplications": undefined,
-                "gate": undefined,
-                "languages": undefined,
-                "maintainability": undefined,
-                "new_coverage": undefined,
-                "new_duplications": undefined,
-                "new_lines": undefined,
-                "new_maintainability": undefined,
-                "new_reliability": undefined,
-                "new_security": undefined,
-                "new_security_review_rating": undefined,
-                "qualifier": undefined,
-                "reliability": undefined,
-                "search": undefined,
-                "security": undefined,
-                "security_review_rating": undefined,
-                "size": undefined,
-                "sort": undefined,
-                "tags": undefined,
-                "view": undefined,
-                "visualization": undefined,
+                  "coverage": undefined,
+                  "duplications": undefined,
+                  "gate": undefined,
+                  "languages": undefined,
+                  "maintainability": undefined,
+                  "new_coverage": undefined,
+                  "new_duplications": undefined,
+                  "new_lines": undefined,
+                  "new_maintainability": undefined,
+                  "new_reliability": undefined,
+                  "new_security": undefined,
+                  "new_security_review_rating": undefined,
+                  "qualifier": undefined,
+                  "reliability": undefined,
+                  "search": undefined,
+                  "security": undefined,
+                  "security_review_rating": undefined,
+                  "size": undefined,
+                  "sort": undefined,
+                  "tags": undefined,
+                  "view": undefined,
+                  "visualization": undefined,
+                }
               }
-            }
-            selectedSort="name"
-            total={0}
-            view="overall"
-            visualization="risk"
-          />
+              selectedSort="name"
+              total={0}
+              view="overall"
+              visualization="risk"
+            />
+          </div>
         </div>
       </div>
-    </div>
-    <div
-      className="layout-page-main-inner"
-    >
-      <ProjectsList
-        cardType="overall"
-        currentUser={
-          Object {
-            "isLoggedIn": true,
+      <div
+        className="layout-page-main-inner"
+      >
+        <ProjectsList
+          cardType="overall"
+          currentUser={
+            Object {
+              "isLoggedIn": true,
+            }
+          }
+          handleFavorite={[Function]}
+          isFavorite={false}
+          isFiltered={false}
+          projects={
+            Array [
+              Object {
+                "key": "foo",
+                "measures": Object {},
+                "name": "Foo",
+                "qualifier": "TRK",
+                "tags": Array [],
+                "visibility": "public",
+              },
+            ]
           }
-        }
-        handleFavorite={[Function]}
-        isFavorite={false}
-        isFiltered={false}
-        projects={
-          Array [
+          query={
             Object {
-              "key": "foo",
-              "measures": Object {},
-              "name": "Foo",
-              "qualifier": "TRK",
-              "tags": Array [],
-              "visibility": "public",
-            },
-          ]
-        }
-        query={
-          Object {
-            "coverage": undefined,
-            "duplications": undefined,
-            "gate": undefined,
-            "languages": undefined,
-            "maintainability": undefined,
-            "new_coverage": undefined,
-            "new_duplications": undefined,
-            "new_lines": undefined,
-            "new_maintainability": undefined,
-            "new_reliability": undefined,
-            "new_security": undefined,
-            "new_security_review_rating": undefined,
-            "qualifier": undefined,
-            "reliability": undefined,
-            "search": undefined,
-            "security": undefined,
-            "security_review_rating": undefined,
-            "size": undefined,
-            "sort": undefined,
-            "tags": undefined,
-            "view": undefined,
-            "visualization": undefined,
+              "coverage": undefined,
+              "duplications": undefined,
+              "gate": undefined,
+              "languages": undefined,
+              "maintainability": undefined,
+              "new_coverage": undefined,
+              "new_duplications": undefined,
+              "new_lines": undefined,
+              "new_maintainability": undefined,
+              "new_reliability": undefined,
+              "new_security": undefined,
+              "new_security_review_rating": undefined,
+              "qualifier": undefined,
+              "reliability": undefined,
+              "search": undefined,
+              "security": undefined,
+              "security_review_rating": undefined,
+              "size": undefined,
+              "sort": undefined,
+              "tags": undefined,
+              "view": undefined,
+              "visualization": undefined,
+            }
           }
-        }
-      />
-      <ListFooter
-        count={1}
-        loadMore={[Function]}
-        loading={false}
-        ready={true}
-        total={0}
-      />
+        />
+        <ListFooter
+          count={1}
+          loadMore={[Function]}
+          loading={false}
+          ready={true}
+          total={0}
+        />
+      </div>
     </div>
   </div>
 </div>
@@ -193,6 +207,11 @@ exports[`renders 2`] = `
     encodeSpecialCharacters={true}
     title="projects.page"
   />
+  <h1
+    className="a11y-hidden"
+  >
+    projects.page
+  </h1>
   <ScreenPositionHelper
     className="layout-page-side-outer"
   >
@@ -205,68 +224,77 @@ exports[`renders 2`] = `
       anchor="projects_main"
     />
     <div
-      className="layout-page-header-panel layout-page-main-header"
+      role="main"
     >
+      <h2
+        className="a11y-hidden"
+      >
+        list_of_projects
+      </h2>
       <div
-        className="layout-page-header-panel-inner layout-page-main-header-inner"
+        className="layout-page-header-panel layout-page-main-header"
       >
         <div
-          className="layout-page-main-inner"
+          className="layout-page-header-panel-inner layout-page-main-header-inner"
         >
-          <PageHeader
-            currentUser={
-              Object {
-                "isLoggedIn": true,
+          <div
+            className="layout-page-main-inner"
+          >
+            <PageHeader
+              currentUser={
+                Object {
+                  "isLoggedIn": true,
+                }
               }
-            }
-            loading={false}
-            onPerspectiveChange={[Function]}
-            onQueryChange={[Function]}
-            onSortChange={[Function]}
-            projects={
-              Array [
+              loading={false}
+              onPerspectiveChange={[Function]}
+              onQueryChange={[Function]}
+              onSortChange={[Function]}
+              projects={
+                Array [
+                  Object {
+                    "key": "foo",
+                    "measures": Object {},
+                    "name": "Foo",
+                    "qualifier": "TRK",
+                    "tags": Array [],
+                    "visibility": "public",
+                  },
+                ]
+              }
+              query={
                 Object {
-                  "key": "foo",
-                  "measures": Object {},
-                  "name": "Foo",
-                  "qualifier": "TRK",
-                  "tags": Array [],
-                  "visibility": "public",
-                },
-              ]
-            }
-            query={
-              Object {
-                "view": "visualizations",
+                  "view": "visualizations",
+                }
               }
-            }
-            selectedSort="name"
-            total={0}
-            view="visualizations"
-            visualization="risk"
-          />
+              selectedSort="name"
+              total={0}
+              view="visualizations"
+              visualization="risk"
+            />
+          </div>
         </div>
       </div>
-    </div>
-    <div
-      className="layout-page-main-inner"
-    >
-      <Visualizations
-        projects={
-          Array [
-            Object {
-              "key": "foo",
-              "measures": Object {},
-              "name": "Foo",
-              "qualifier": "TRK",
-              "tags": Array [],
-              "visibility": "public",
-            },
-          ]
-        }
-        total={0}
-        visualization="risk"
-      />
+      <div
+        className="layout-page-main-inner"
+      >
+        <Visualizations
+          projects={
+            Array [
+              Object {
+                "key": "foo",
+                "measures": Object {},
+                "name": "Foo",
+                "qualifier": "TRK",
+                "tags": Array [],
+                "visibility": "public",
+              },
+            ]
+          }
+          total={0}
+          visualization="risk"
+        />
+      </div>
     </div>
   </div>
 </div>
index 4793b31af1954ac2f9ea0166d63d7e5a3b7f7431..55d42cf6c82f3e0c10921b108af8064904c2d9f0 100644 (file)
@@ -1,7 +1,7 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`renders for logged in user 1`] = `
-<header
+<div
   className="page-header text-center"
 >
   <div
@@ -42,5 +42,5 @@ exports[`renders for logged in user 1`] = `
       all
     </IndexLink>
   </div>
-</header>
+</div>
 `;
index 7f5915cf34ff06d1488b551830bfb825931c85fb..31ec1cb22bfa5061f8b4bba6b9ccbfcb182d9c2e 100644 (file)
@@ -1,7 +1,7 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`should render correctly 1`] = `
-<header
+<div
   className="page-header"
 >
   <div
@@ -75,11 +75,11 @@ exports[`should render correctly 1`] = `
       </Tooltip>
     </div>
   </div>
-</header>
+</div>
 `;
 
 exports[`should render correctly while loading 1`] = `
-<header
+<div
   className="page-header"
 >
   <div
@@ -153,11 +153,11 @@ exports[`should render correctly while loading 1`] = `
       </Tooltip>
     </div>
   </div>
-</header>
+</div>
 `;
 
 exports[`should render disabled sorting options for visualizations 1`] = `
-<header
+<div
   className="page-header"
 >
   <div
@@ -222,7 +222,7 @@ exports[`should render disabled sorting options for visualizations 1`] = `
       </Tooltip>
     </div>
   </div>
-</header>
+</div>
 `;
 
 exports[`should render switch the default sorting option for anonymous users 1`] = `
index 748cc246cbb26492f73013b558ceffba57d5aa56..5e4876ebedaa20e6f47a55b7e463baf5c1412d1d 100644 (file)
@@ -12,9 +12,11 @@ exports[`should render \`leak\` view correctly 1`] = `
   <div
     className="projects-facets-header clearfix"
   >
-    <h3>
+    <h2
+      className="h3"
+    >
       filters
-    </h3>
+    </h2>
   </div>
   <QualityGateFilter
     onQueryChange={[MockFunction]}
@@ -76,9 +78,11 @@ exports[`should render \`leak\` view correctly with no applications 1`] = `
   <div
     className="projects-facets-header clearfix"
   >
-    <h3>
+    <h2
+      className="h3"
+    >
       filters
-    </h3>
+    </h2>
   </div>
   <QualityGateFilter
     onQueryChange={[MockFunction]}
@@ -134,9 +138,11 @@ exports[`should render correctly 1`] = `
     <ClearAll
       onClearAll={[MockFunction]}
     />
-    <h3>
+    <h2
+      className="h3"
+    >
       filters
-    </h3>
+    </h2>
   </div>
   <QualityGateFilter
     onQueryChange={[MockFunction]}
@@ -194,9 +200,11 @@ exports[`should render correctly with no applications 1`] = `
     <ClearAll
       onClearAll={[MockFunction]}
     />
-    <h3>
+    <h2
+      className="h3"
+    >
       filters
-    </h3>
+    </h2>
   </div>
   <QualityGateFilter
     onQueryChange={[MockFunction]}
index 195587df404732301cd0ad593656bb7263e6ee26..4a854f9d8f34ce16d654b79ae1cbc428891ebd3c 100644 (file)
@@ -94,9 +94,9 @@ function renderFirstLine(project: Props['project'], handleFavorite: Props['handl
             </span>
           </Tooltip>
         )}
-        <h2 className="project-card-name text-ellipsis" title={name}>
+        <h3 className="h2 project-card-name text-ellipsis" title={name}>
           {needIssueSync ? name : <Link to={getProjectUrl(key)}>{name}</Link>}
-        </h2>
+        </h3>
 
         {analysisDate && (
           <>
index c57e8c544391aa436307157e703e40aabe3a7a47..a326b9ecfcdfd3583e7fc974897a515fc82d38ea 100644 (file)
@@ -32,8 +32,8 @@ exports[`should display applications 1`] = `
           />
         </span>
       </Tooltip>
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         <Link
@@ -51,7 +51,7 @@ exports[`should display applications 1`] = `
         >
           Foo
         </Link>
-      </h2>
+      </h3>
       <ProjectCardQualityGate
         status="OK"
       />
@@ -140,8 +140,8 @@ exports[`should display applications: with project count 1`] = `
           />
         </span>
       </Tooltip>
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         <Link
@@ -159,7 +159,7 @@ exports[`should display applications: with project count 1`] = `
         >
           Foo
         </Link>
-      </h2>
+      </h3>
       <ProjectCardQualityGate
         status="OK"
       />
@@ -229,8 +229,8 @@ exports[`should display configure analysis button for logged in user: default 1`
     <div
       className="project-card-main big-padded padded-bottom display-flex-center"
     >
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         <Link
@@ -248,7 +248,7 @@ exports[`should display configure analysis button for logged in user: default 1`
         >
           Foo
         </Link>
-      </h2>
+      </h3>
     </div>
     <div
       className="project-card-meta big-padded padded-bottom display-flex-center"
@@ -319,12 +319,12 @@ exports[`should display configure analysis button for logged in user: hidden if
     <div
       className="project-card-main big-padded padded-bottom display-flex-center"
     >
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         Foo
-      </h2>
+      </h3>
     </div>
     <div
       className="project-card-meta big-padded padded-bottom display-flex-center"
@@ -379,12 +379,12 @@ exports[`should display correclty when project need issue synch 1`] = `
     <div
       className="project-card-main big-padded padded-bottom display-flex-center"
     >
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         Foo
-      </h2>
+      </h3>
       <ProjectCardQualityGate
         status="OK"
       />
@@ -453,8 +453,8 @@ exports[`should display not analyzed yet 1`] = `
     <div
       className="project-card-main big-padded padded-bottom display-flex-center"
     >
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         <Link
@@ -472,7 +472,7 @@ exports[`should display not analyzed yet 1`] = `
         >
           Foo
         </Link>
-      </h2>
+      </h3>
     </div>
     <div
       className="project-card-meta big-padded padded-bottom display-flex-center"
@@ -527,8 +527,8 @@ exports[`should display the overall measures and quality gate 1`] = `
     <div
       className="project-card-main big-padded padded-bottom display-flex-center"
     >
-      <h2
-        className="project-card-name text-ellipsis"
+      <h3
+        className="h2 project-card-name text-ellipsis"
         title="Foo"
       >
         <Link
@@ -546,7 +546,7 @@ exports[`should display the overall measures and quality gate 1`] = `
         >
           Foo
         </Link>
-      </h2>
+      </h3>
       <ProjectCardQualityGate
         status="OK"
       />
index 8183777ec9e62884b40aa32e517f9ae126a95c3c..61e512f8e437578670341b884ee38a9ccd0aefe8 100644 (file)
@@ -27,7 +27,7 @@ interface Props {
 export default function FilterHeader(props: Props) {
   return (
     <div className="search-navigator-facet-header projects-facet-header">
-      {props.name}
+      <h3 className="h4">{props.name}</h3>
       {props.children}
     </div>
   );
index b1f4611eae93caad0ff2af238bfd40bf82be0325..95be013ebaa85d8e772a87aa61aa53a14fdb5294 100644 (file)
@@ -4,7 +4,11 @@ exports[`renders 1`] = `
 <div
   className="search-navigator-facet-header projects-facet-header"
 >
-  foo
+  <h3
+    className="h4"
+  >
+    foo
+  </h3>
 </div>
 `;
 
@@ -12,7 +16,11 @@ exports[`renders with children 1`] = `
 <div
   className="search-navigator-facet-header projects-facet-header"
 >
-  foo
+  <h3
+    className="h4"
+  >
+    foo
+  </h3>
   <div />
 </div>
 `;
index 4a1314a3546b9c3a2f2dbc46fea72fe73c3bddec..b4b259882cb6704c4d7d27b112a726ce89a1cadb 100644 (file)
@@ -78,9 +78,9 @@ export default class Visualizations extends React.PureComponent<Props> {
 
     return (
       <div className="boxed-group projects-visualizations">
-        <div className="projects-visualization">
+        <main className="projects-visualization">
           {projects != null && this.renderVisualization(projects)}
-        </div>
+        </main>
         {this.renderFooter()}
       </div>
     );
index 831d01106d2c74f35856313d4da5275a7f5a18b1..a74c4bec92de808d473ad3abea2dfdf76191d36c 100644 (file)
@@ -4,14 +4,14 @@ exports[`renders 1`] = `
 <div
   className="boxed-group projects-visualizations"
 >
-  <div
+  <main
     className="projects-visualization"
   >
     <Coverage
       helpText="projects.visualization.coverage.description"
       projects={Array []}
     />
-  </div>
+  </main>
 </div>
 `;
 
@@ -19,14 +19,14 @@ exports[`renders when limit is reached 1`] = `
 <div
   className="boxed-group projects-visualizations"
 >
-  <div
+  <main
     className="projects-visualization"
   >
     <Coverage
       helpText="projects.visualization.coverage.description"
       projects={Array []}
     />
-  </div>
+  </main>
   <footer
     className="projects-visualizations-footer"
   >
index d673d2a9269b16f08291cc7073ef89dc831c3278..c21e2226ec7f8b9fcd89ab1df9291153d3cdd325 100644 (file)
@@ -330,6 +330,12 @@ a.search-navigator-facet:focus,
   font-weight: 400;
 }
 
+.search-navigator-facet-header > h3,
+.search-navigator-facet-header > h4 {
+  line-height: inherit;
+  display: inline;
+}
+
 .search-navigator-facet-header-value {
   display: block;
   overflow: hidden;
index 219b4e6a55484980b72769dcb28d880f5836dd61..be3b77bb8ae72fdb79f2d41e10839188a6218431 100644 (file)
@@ -103,6 +103,7 @@ learn_more=Learn More
 library=Library
 line_number=Line Number
 links=Links
+list_of_projects=List of projects
 load_more=Load more
 load_verb=Load
 login=Login