From 3e239eb475678a6c0f48926580aaf747bc68a6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ben=20Hammond=20=F0=9F=8E=9B=EF=B8=8F?= Date: Fri, 10 Jan 2025 11:26:45 -0700 Subject: [PATCH] Frontend: Fix headings (#3906) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description and Motivation - fixes #3904 - updates e2e tests as needed - adds e2e test coverage for all tabs of methodology and policy hubs, including a11y checks - fixes needed a11y issues on all pages ## Has this been tested? How? updates e2e and passing ## Types of changes (leave all that apply) - Bug fix - Refactor / chore ## New frontend preview link is below in the Netlify comment 😎 --- biome.json | 3 +- frontend/playwright-tests/ami.ci.spec.ts | 6 +- .../black_men_gun_homicides.ci.spec.ts | 6 +- frontend/playwright-tests/cawp.ci.spec.ts | 1 - .../playwright-tests/drinking.nightly.spec.ts | 1 - frontend/playwright-tests/faqs.ci.spec.ts | 1 - .../hiv_black_women.ci.spec.ts | 1 + ...nternal_methodology_routes.nightly.spec.ts | 171 ++++++++++++++++++ .../internal_policy_routes.nightly.spec.ts | 84 +++++++++ .../internal_routes.ci.spec.ts | 28 +-- .../maternal_mortality.nightly.spec.ts | 2 +- frontend/src/cards/CardWrapper.tsx | 1 - frontend/src/cards/ui/InsightDisplay.tsx | 1 + .../rateBarChart/RoundedBarsWithLabels.tsx | 4 +- .../src/charts/sharedBarChartPieces/XAxis.tsx | 1 - .../src/charts/sharedBarChartPieces/YAxis.tsx | 1 - .../charts/stackedSharesBarChart/Index.tsx | 5 +- .../StackedBarLegend.tsx | 3 +- .../StackedBarsWithLabels.tsx | 1 + .../src/charts/trendsChart/TrendsTooltip.tsx | 4 +- frontend/src/pages/AboutUs/AboutUsPage.tsx | 17 +- frontend/src/pages/AboutUs/GoalListItem.tsx | 4 +- .../src/pages/DataCatalog/DataCatalogPage.tsx | 2 - .../pages/DataCatalog/DataSourceListing.tsx | 4 +- .../src/pages/ExploreData/ExploreDataPage.tsx | 1 - frontend/src/pages/ExploreData/MadLibUI.tsx | 13 +- frontend/src/pages/FAQs/FaqGroup.tsx | 4 +- frontend/src/pages/FAQs/FaqsPage.tsx | 2 - frontend/src/pages/Landing/LandingPage.tsx | 6 +- .../methodologyComponents/GlossaryTerm.tsx | 4 +- .../methodologyComponents/MethodologyPage.tsx | 18 +- .../methodologyComponents/Resources.tsx | 6 +- .../methodologyContent/ConditionVariable.tsx | 2 +- .../methodologyRouteConfigs.tsx | 2 +- .../methodologySections/AgeAdjustmentLink.tsx | 12 +- .../BehavioralHealthLink.tsx | 5 +- .../ChronicDiseaseLink.tsx | 5 +- .../CommunitySafetyLink.tsx | 13 +- .../methodologySections/Covid19Link.tsx | 5 +- .../DataMethodDefinitionsLink.tsx | 9 +- .../methodologySections/DataSourcesLink.tsx | 34 ++-- .../methodologySections/GlossaryLink.tsx | 1 - .../methodologySections/HivLink.tsx | 7 +- .../methodologySections/LimitationsLink.tsx | 21 +-- .../MedicationUtilizationLink.tsx | 29 ++- .../MethodologyHomeLink.tsx | 1 - .../methodologySections/MetricsLink.tsx | 5 +- .../methodologySections/PdohLink.tsx | 41 ++--- .../RacesAndEthnicitiesLink.tsx | 5 +- .../RecommendedCitationLink.tsx | 5 +- .../methodologySections/SdohLink.tsx | 5 +- .../TopicCategoriesLink.tsx | 5 +- .../TopicDefinitionsLink.tsx | 7 +- .../src/pages/News/NewsAndStoriesPage.tsx | 4 +- .../NewsAndStoriesPreviewCardOutlined.tsx | 8 +- frontend/src/pages/News/ShareYourStory.tsx | 4 +- .../Policy/policyComponents/CardLeftIcon.tsx | 4 +- .../Policy/policyComponents/PolicyPage.tsx | 18 +- .../policyComponents/ResourceSection.tsx | 2 +- .../policyContent/policyRouteConfigs.tsx | 2 - .../policySections/CommunitySafetyFaqsTab.tsx | 1 - .../policySections/CrisisOverviewTab.tsx | 4 +- .../policySections/CurrentEffortsTab.tsx | 2 - .../policySections/DataCollectionTab.tsx | 23 ++- .../GunViolencePolicyHomeLink.tsx | 4 +- .../policySections/HowToUseTheDataTab.tsx | 14 +- .../Policy/policySections/OurFindingsTab.tsx | 18 +- .../policySections/ReformOpportunitiesTab.tsx | 13 +- .../WhatIsHealthEquityPage.tsx | 11 +- .../wiheSections/FaqSection.tsx | 4 +- frontend/src/reports/ReportProvider.tsx | 6 +- frontend/src/reports/WhatDataAreMissing.tsx | 2 +- frontend/src/reports/ui/DefinitionsList.tsx | 4 +- .../src/reports/ui/RaceRelabelingsList.tsx | 4 +- .../styles/HetComponents/HetCarouselCard.tsx | 4 +- .../HetComponents/HetDesktopToolbar.tsx | 9 +- .../styles/HetComponents/HetTermUnderline.tsx | 7 - 77 files changed, 479 insertions(+), 318 deletions(-) create mode 100644 frontend/playwright-tests/internal_methodology_routes.nightly.spec.ts create mode 100644 frontend/playwright-tests/internal_policy_routes.nightly.spec.ts diff --git a/biome.json b/biome.json index e4524cb9eb..95134666b2 100644 --- a/biome.json +++ b/biome.json @@ -32,7 +32,8 @@ }, "a11y": { "useSemanticElements": "off", - "noSvgWithoutTitle": "off" + "noSvgWithoutTitle": "off", + "noInteractiveElementToNoninteractiveRole": "off" }, "suspicious": { "noExplicitAny": "off", diff --git a/frontend/playwright-tests/ami.ci.spec.ts b/frontend/playwright-tests/ami.ci.spec.ts index 4cefa9f56b..f2989360ad 100644 --- a/frontend/playwright-tests/ami.ci.spec.ts +++ b/frontend/playwright-tests/ami.ci.spec.ts @@ -29,7 +29,11 @@ test('PHRMA: Medicare AMI', async ({ page }) => { await page .getByRole('button', { name: 'Population vs. distribution' }) .click() - await page.getByLabel('Comparison bar chart showing').getByRole('img').click() + await page + .getByLabel('Comparison bar chart showing') + .getByRole('img') + .nth(1) + .click() await page.getByRole('heading', { name: 'Summary for acute' }).click() await page.getByText('Gender: The Medicare source').click() await page.getByText('Sexual Orientation:').click() diff --git a/frontend/playwright-tests/black_men_gun_homicides.ci.spec.ts b/frontend/playwright-tests/black_men_gun_homicides.ci.spec.ts index c98b02da6f..c09851fbfb 100644 --- a/frontend/playwright-tests/black_men_gun_homicides.ci.spec.ts +++ b/frontend/playwright-tests/black_men_gun_homicides.ci.spec.ts @@ -63,7 +63,11 @@ test('Black Men Homicide Test: Bottom Half of Cards', async ({ page }) => { .locator('#population-vs-distribution') .getByRole('heading', { name: 'Black (NH) Men' }) .click() - await page.getByLabel('Comparison bar chart showing').getByRole('img').click() + await page + .getByLabel('Comparison bar chart showing') + .getByRole('img') + .nth(1) + .click() await page.getByRole('button', { name: 'Data table' }).click() await page.getByRole('heading', { name: 'Summary of Black male gun' }).click() await page diff --git a/frontend/playwright-tests/cawp.ci.spec.ts b/frontend/playwright-tests/cawp.ci.spec.ts index 3ae12f0d8a..f2749d8dcb 100644 --- a/frontend/playwright-tests/cawp.ci.spec.ts +++ b/frontend/playwright-tests/cawp.ci.spec.ts @@ -41,7 +41,6 @@ test('CAWP: Congress', async ({ page }) => { .getByLabel( 'Comparison bar chart showing Population vs. distribution of total women in US congress in the United States', ) - .getByRole('img') .click() await page .getByLabel( diff --git a/frontend/playwright-tests/drinking.nightly.spec.ts b/frontend/playwright-tests/drinking.nightly.spec.ts index cbf9eb3f67..d0b73419f6 100644 --- a/frontend/playwright-tests/drinking.nightly.spec.ts +++ b/frontend/playwright-tests/drinking.nightly.spec.ts @@ -38,7 +38,6 @@ test('Excessive Drinking Flow', async ({ page }) => { .getByLabel( 'Comparison bar chart showing Population vs. distribution of total adult excessive drinking cases in the United States', ) - .getByRole('img') .click() await page .getByRole('heading', { diff --git a/frontend/playwright-tests/faqs.ci.spec.ts b/frontend/playwright-tests/faqs.ci.spec.ts index 4c076e0811..a6f7b3b24e 100644 --- a/frontend/playwright-tests/faqs.ci.spec.ts +++ b/frontend/playwright-tests/faqs.ci.spec.ts @@ -9,7 +9,6 @@ test('FAQ Tab Loads', async ({ page }) => { const heading = await page.getByRole('heading', { name: 'Frequently Asked Questions', - level: 1, }) await expect(heading).toBeVisible() diff --git a/frontend/playwright-tests/hiv_black_women.ci.spec.ts b/frontend/playwright-tests/hiv_black_women.ci.spec.ts index 8d1af58b94..43e83514a4 100644 --- a/frontend/playwright-tests/hiv_black_women.ci.spec.ts +++ b/frontend/playwright-tests/hiv_black_women.ci.spec.ts @@ -100,6 +100,7 @@ test('HIV Black Women: Deaths', async ({ page }) => { '/exploredata?mls=1.hiv_black_women-3.00&group1=All&dt1=hiv_deaths_black_women', ) await page + .locator('#rates-over-time') .getByRole('heading', { name: 'Rates of HIV deaths for Black' }) .click() await page diff --git a/frontend/playwright-tests/internal_methodology_routes.nightly.spec.ts b/frontend/playwright-tests/internal_methodology_routes.nightly.spec.ts new file mode 100644 index 0000000000..c5bbefd76d --- /dev/null +++ b/frontend/playwright-tests/internal_methodology_routes.nightly.spec.ts @@ -0,0 +1,171 @@ +import AxeBuilder from '@axe-core/playwright' +import { expect, test } from '@playwright/test' + +test.describe.configure({ mode: 'parallel' }) + +test('Methodology Introduction Tab Loads', async ({ page }) => { + await page.goto('/methodology', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Methodology Introduction' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Methodology Data Sources Tab Loads', async ({ page }) => { + await page.goto('/methodology/data-sources', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Data Sources' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Topic Categories Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Topic Categories' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Behavioral Health Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/behavioral-health', { + waitUntil: 'commit', + }) + await page + .getByRole('heading', { name: 'Behavioral Health', exact: true }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Chronic Diseases Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/chronic-disease', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Chronic Diseases' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Community Safety Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/community-safety', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Community Safety' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('COVID-19 Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/covid', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'COVID-19', exact: true }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('HIV Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/hiv', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'HIV', exact: true }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Political Determinants Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/pdoh', { waitUntil: 'commit' }) + await page + .getByRole('heading', { + name: 'Political Determinants of Health', + exact: true, + }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Social Determinants Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/sdoh', { waitUntil: 'commit' }) + await page + .getByRole('heading', { + name: 'Social Determinants of Health', + exact: true, + }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Medication Utilization Tab Loads', async ({ page }) => { + await page.goto('/methodology/topic-categories/medication-utilization', { + waitUntil: 'commit', + }) + await page + .getByRole('heading', { name: 'Medication Utilization', exact: true }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Data Methods Tab Loads', async ({ page }) => { + await page.goto('/methodology/definitions', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Data Methods' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Limitations Tab Loads', async ({ page }) => { + await page.goto('/methodology/limitations', { waitUntil: 'commit' }) + await page + .getByRole('heading', { name: 'Limitations and Missing Data' }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Metrics Tab Loads', async ({ page }) => { + await page.goto('/methodology/definitions/metrics', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Metrics' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Topic Definitions Tab Loads', async ({ page }) => { + await page.goto('/methodology/definitions/topic-definitions', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Topic Definitions' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Races and Ethnicities Definitions Tab Loads', async ({ page }) => { + await page.goto('/methodology/definitions/races-and-ethnicities', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Races and Ethnicities' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Age-Adjustment Tab Loads', async ({ page }) => { + await page.goto('/ageadjustment', { waitUntil: 'commit' }) + await page + .getByRole('heading', { name: 'Age-Adjustment', exact: true }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Recommended Citation Tab Loads', async ({ page }) => { + await page.goto('/methodology/recommended-citation', { waitUntil: 'commit' }) + await page + .getByRole('heading', { name: 'Recommended Citation', exact: true }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Glossary Tab Loads', async ({ page }) => { + await page.goto('/methodology/glossary', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Glossary', exact: true }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) diff --git a/frontend/playwright-tests/internal_policy_routes.nightly.spec.ts b/frontend/playwright-tests/internal_policy_routes.nightly.spec.ts new file mode 100644 index 0000000000..0d8231120f --- /dev/null +++ b/frontend/playwright-tests/internal_policy_routes.nightly.spec.ts @@ -0,0 +1,84 @@ +import AxeBuilder from '@axe-core/playwright' +import { expect, test } from '@playwright/test' + +test.describe.configure({ mode: 'parallel' }) + +// use prefers-reduced-motion to prevent a11y constrast failures on unfinished fade-in animations +test.beforeEach(async ({ page }) => { + await page.emulateMedia({ reducedMotion: 'reduce' }) +}) + +test('Gun Violence Policy Home Link Loads', async ({ page }) => { + await page.goto('/policy/gun-violence', { waitUntil: 'commit' }) + await page + .getByRole('heading', { + name: 'Understanding the Crisis of Gun Violence in Atlanta', + }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Crisis Overview Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/crisis-overview', { + waitUntil: 'commit', + }) + + await page.getByRole('heading', { name: 'Crisis Overview' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Data Collection Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/data-collection', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Data Collection' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Our Findings Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/our-findings', { waitUntil: 'commit' }) + await page + .getByRole('heading', { name: "Georgia's Youth Fatality Rates" }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Current Efforts Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/current-efforts', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Current Efforts' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Reform Opportunities Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/reform-opportunities', { + waitUntil: 'commit', + }) + await page.getByRole('heading', { name: 'Reform Opportunities' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('How to Use the Data Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/how-to-use-the-data', { + waitUntil: 'commit', + }) + await page + .getByRole('heading', { name: 'HET Data Visualization Maps and Charts' }) + .click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) + +test('Community Safety FAQs Tab Loads', async ({ page }) => { + await page.goto('/policy/gun-violence/faqs', { waitUntil: 'commit' }) + await page.getByRole('heading', { name: 'Community Safety FAQs' }).click() + const accessibilityScanResults = await new AxeBuilder({ page }).analyze() + expect(accessibilityScanResults.violations).toEqual([]) +}) diff --git a/frontend/playwright-tests/internal_routes.ci.spec.ts b/frontend/playwright-tests/internal_routes.ci.spec.ts index 6daac6e73a..5d0488500b 100644 --- a/frontend/playwright-tests/internal_routes.ci.spec.ts +++ b/frontend/playwright-tests/internal_routes.ci.spec.ts @@ -11,20 +11,6 @@ test('Methodology Hub Loads', async ({ page }) => { expect(accessibilityScanResults.violations).toEqual([]) }) -test('Policy Hub Loads', async ({ page }) => { - await page.goto('/policy', { waitUntil: 'commit' }) - await expect(page.getByLabel('Policy Context Introduction')).toContainText( - 'Understanding the Crisis of Gun Violence in Atlanta', - ) - // mimic reduced motion to prevent animation, which was causing contrast a11y error - await page.emulateMedia({ reducedMotion: 'reduce' }) - const accessibilityScanResults = await new AxeBuilder({ page }) - .exclude('.text-tinyTag') - .exclude('.shadow-raised-tighter') - .analyze() - expect(accessibilityScanResults.violations).toEqual([]) -}) - test('Age-Adjustment Redirects to Age-Adjustment Page of Methodology Hub', async ({ page, }) => { @@ -48,19 +34,7 @@ test('About Us Page Loads', async ({ page }) => { test('Terms of Use Page Loads and Renders Correctly', async ({ page }) => { await page.goto('/termsofuse', { waitUntil: 'commit' }) - const mainSection = page.locator('section#main-content') - await expect(mainSection).toBeVisible() - const mainHeading = mainSection.locator('h1#main') - await expect(mainHeading).toHaveText('Terms of Use') - const termsList = mainSection.locator('ul') - await expect(termsList).toBeVisible() - const firstTerm = termsList.locator('li#tou-0') - const firstTermHeading = firstTerm.locator('h2') - await expect(firstTermHeading).toHaveText('Privacy Policy') - const firstTermParagraph = firstTerm.locator('p') - await expect(firstTermParagraph).toContainText( - 'The Health Equity Tracker (HET)', - ) + await page.getByRole('heading', { name: 'Terms of Use' }).click() const accessibilityScanResults = await new AxeBuilder({ page }).analyze() expect(accessibilityScanResults.violations).toEqual([]) }) diff --git a/frontend/playwright-tests/maternal_mortality.nightly.spec.ts b/frontend/playwright-tests/maternal_mortality.nightly.spec.ts index d51b467ec9..5a5a37d978 100644 --- a/frontend/playwright-tests/maternal_mortality.nightly.spec.ts +++ b/frontend/playwright-tests/maternal_mortality.nightly.spec.ts @@ -48,7 +48,7 @@ test('Maternal Mortality', async ({ page }) => { .locator('#population-vs-distribution') .getByRole('heading', { name: 'New Mothers, Ages 10-' }) .click() - await page.getByLabel('Comparison bar chart showing').getByRole('img').click() + await page.getByLabel('Comparison bar chart showing').click() await page.getByRole('heading', { name: 'Summary for maternal' }).click() await page .getByRole('figure', { name: 'Summary for maternal' }) diff --git a/frontend/src/cards/CardWrapper.tsx b/frontend/src/cards/CardWrapper.tsx index 1485ffb202..c6ea1ea0de 100644 --- a/frontend/src/cards/CardWrapper.tsx +++ b/frontend/src/cards/CardWrapper.tsx @@ -58,7 +58,6 @@ function CardWrapper(props: { return (
{shouldShowInsightDisplay && ( = ({ return ( <> { props.handleTooltip(e, d, true) }} + aria-label={barAriaLabel} + role='img' > {xAxisLabel} diff --git a/frontend/src/charts/sharedBarChartPieces/YAxis.tsx b/frontend/src/charts/sharedBarChartPieces/YAxis.tsx index 4bef77e488..43610de052 100644 --- a/frontend/src/charts/sharedBarChartPieces/YAxis.tsx +++ b/frontend/src/charts/sharedBarChartPieces/YAxis.tsx @@ -36,7 +36,6 @@ export default function YAxis(props: YAxisProps) { transform={`translate(${-MARGIN.left + Y_AXIS_LABEL_HEIGHT + 10},${props.innerHeight / 2}) rotate(-90)`} textAnchor='middle' className='m-0 cursor-vertical-text p-0 font-semibold text-smallest' - aria-label={'Y Axis Label'} > {DEMOGRAPHIC_DISPLAY_TYPES_LOWER_CASE[props.demographicType]} diff --git a/frontend/src/charts/stackedSharesBarChart/Index.tsx b/frontend/src/charts/stackedSharesBarChart/Index.tsx index 4d12f2213e..5d8a94174a 100644 --- a/frontend/src/charts/stackedSharesBarChart/Index.tsx +++ b/frontend/src/charts/stackedSharesBarChart/Index.tsx @@ -114,7 +114,10 @@ export function StackedBarChart(props: StackedBarChartProps) { - + - + diff --git a/frontend/src/charts/stackedSharesBarChart/StackedBarsWithLabels.tsx b/frontend/src/charts/stackedSharesBarChart/StackedBarsWithLabels.tsx index ce07dbcb12..a8f9df36f9 100644 --- a/frontend/src/charts/stackedSharesBarChart/StackedBarsWithLabels.tsx +++ b/frontend/src/charts/stackedSharesBarChart/StackedBarsWithLabels.tsx @@ -76,6 +76,7 @@ const StackedBarsWithLabels = (props: StackedBarsWithLabelsProps) => { return ( { setHoveredDemographic(d[demographicType]) diff --git a/frontend/src/charts/trendsChart/TrendsTooltip.tsx b/frontend/src/charts/trendsChart/TrendsTooltip.tsx index 882c204ed9..e05e8d7c7c 100644 --- a/frontend/src/charts/trendsChart/TrendsTooltip.tsx +++ b/frontend/src/charts/trendsChart/TrendsTooltip.tsx @@ -84,7 +84,7 @@ export function TrendsTooltip({ : F.dateFromString_YYYY(selectedDate ?? '') return ( - + ) } diff --git a/frontend/src/pages/AboutUs/AboutUsPage.tsx b/frontend/src/pages/AboutUs/AboutUsPage.tsx index 203612a0f9..e49d9e379b 100644 --- a/frontend/src/pages/AboutUs/AboutUsPage.tsx +++ b/frontend/src/pages/AboutUs/AboutUsPage.tsx @@ -29,7 +29,6 @@ export default function AboutUsPage() { About the Health Equity Tracker -

About Us

@@ -42,9 +41,9 @@ export default function AboutUsPage() { to make informed decisions, this scalable, feature-rich platform supports efforts to achieve health equity and justice for all.

-

+

Morehouse School of Medicine -

+

Morehouse School of Medicine (MSM), located in Atlanta, GA, was founded in 1975 as the Medical Education Program at Morehouse @@ -60,9 +59,9 @@ export default function AboutUsPage() { and the world.

-

+

Satcher Health Leadership Institute -

+

Rooted in the legacy of our founder, the 16th U.S. Surgeon General, @@ -77,9 +76,9 @@ export default function AboutUsPage() { population groups.

-

+

Native Land Acknowledgment -

+

The Health Equity Tracker and Morehouse School of Medicine @@ -104,9 +103,9 @@ export default function AboutUsPage() {

-

+

We are committed to the following ethics -

+
    )} -

    +

    {props.title} -

    +

    {props.text}

    ) diff --git a/frontend/src/pages/DataCatalog/DataCatalogPage.tsx b/frontend/src/pages/DataCatalog/DataCatalogPage.tsx index a4655ed566..ced5890b68 100644 --- a/frontend/src/pages/DataCatalog/DataCatalogPage.tsx +++ b/frontend/src/pages/DataCatalog/DataCatalogPage.tsx @@ -62,13 +62,11 @@ export default function DataCatalogPage() { >

    Data Downloads

    -

    Data Downloads

    Here you can access and download the data source files that are displayed in the charts on the Health Equity Tracker. Want to explore diff --git a/frontend/src/pages/DataCatalog/DataSourceListing.tsx b/frontend/src/pages/DataCatalog/DataSourceListing.tsx index 069a301001..7b25204784 100644 --- a/frontend/src/pages/DataCatalog/DataSourceListing.tsx +++ b/frontend/src/pages/DataCatalog/DataSourceListing.tsx @@ -108,7 +108,7 @@ export function DataSourceListing(props: DataSourceListingProps) { className='group my-8 rounded-md border border-altGreen border-solid bg-white p-12 text-left shadow-raised-tighter transition-all duration-300 ease-in-out hover:shadow-raised md:px-20 md:pt-14 md:pb-10' data-testid={props.source_metadata.id} > -

    +

    {props.source_metadata.data_source_name} -

    +
      {props.source_metadata.time_period_range && (
    • diff --git a/frontend/src/pages/ExploreData/ExploreDataPage.tsx b/frontend/src/pages/ExploreData/ExploreDataPage.tsx index a292589894..70fa6fc468 100644 --- a/frontend/src/pages/ExploreData/ExploreDataPage.tsx +++ b/frontend/src/pages/ExploreData/ExploreDataPage.tsx @@ -325,7 +325,6 @@ function ExploreDataPage(props: ExploreDataPageProps) { activelyOnboarding={activelyOnboarding} /> -

      {getMadLibPhraseText(madLib)}

      [demoType as DemographicType, label]) - const selectedDemoType: DemographicType = useGetParamState( - DEMOGRAPHIC_PARAM, - 'race_and_ethnicity', - ) - return ( <>
      -
      {props.madLib.phrase.map( @@ -214,7 +207,7 @@ export default function MadLibUI(props: MadLibUIProps) { )} by -
      +
      ) diff --git a/frontend/src/pages/FAQs/FaqGroup.tsx b/frontend/src/pages/FAQs/FaqGroup.tsx index 191c3ac54b..7a5da2bdc7 100644 --- a/frontend/src/pages/FAQs/FaqGroup.tsx +++ b/frontend/src/pages/FAQs/FaqGroup.tsx @@ -9,9 +9,9 @@ interface FaqGroupProps { const FaqGroup: React.FC = ({ title, faqs }) => (
      -

      +

      {title} -

      +
      {faqs.map((faq, index) => (
      diff --git a/frontend/src/pages/FAQs/FaqsPage.tsx b/frontend/src/pages/FAQs/FaqsPage.tsx index d0729ab954..edc82c3b7b 100644 --- a/frontend/src/pages/FAQs/FaqsPage.tsx +++ b/frontend/src/pages/FAQs/FaqsPage.tsx @@ -21,12 +21,10 @@ export default function FaqsPage() { >

      Frequently Asked Questions

      -

      Frequently Asked Questions

      diff --git a/frontend/src/pages/Landing/LandingPage.tsx b/frontend/src/pages/Landing/LandingPage.tsx index 51bea1d99e..022bdb7e96 100644 --- a/frontend/src/pages/Landing/LandingPage.tsx +++ b/frontend/src/pages/Landing/LandingPage.tsx @@ -108,8 +108,6 @@ function LandingPage() { Home - Health Equity Tracker -

      Home Page

      -

      - Where will the
      + Where will the
      Health Equity Tracker -
      take you? +
      take you?

      Explore the data diff --git a/frontend/src/pages/Methodology/methodologyComponents/GlossaryTerm.tsx b/frontend/src/pages/Methodology/methodologyComponents/GlossaryTerm.tsx index e7e6ab12bb..0e0c50c0ea 100644 --- a/frontend/src/pages/Methodology/methodologyComponents/GlossaryTerm.tsx +++ b/frontend/src/pages/Methodology/methodologyComponents/GlossaryTerm.tsx @@ -33,9 +33,9 @@ export default function GlossaryTerm(props: GlossaryTermProps) { return (
      -

      +

      {itemKey} -

      +

      {glossaryDefinition}

      diff --git a/frontend/src/pages/Methodology/methodologyComponents/MethodologyPage.tsx b/frontend/src/pages/Methodology/methodologyComponents/MethodologyPage.tsx index 6d097da8c7..58aaf011ea 100644 --- a/frontend/src/pages/Methodology/methodologyComponents/MethodologyPage.tsx +++ b/frontend/src/pages/Methodology/methodologyComponents/MethodologyPage.tsx @@ -18,11 +18,7 @@ export default function MethodologyPage() { Methodology - Health Equity Tracker - {activeRoute?.visible && ( -

      - {activeRoute?.label} -

      - )} +
      {activeRoute?.visible && ( -

      +

      {activeRoute?.label}

      )} -

      {activeRoute?.label}

      {/* PREV / NEXT */} @@ -92,12 +90,6 @@ export default function MethodologyPage() {

      On this page

      -

      - {routeConfig.label} -

      ( -

      {heading} Resources

      +

      {heading} Resources

      = 10 ? 6 : 12}> {renderResourcesList( @@ -53,10 +53,6 @@ export default function Resources(props: ResourcesProps) { return (
      - - Health Equity Resources - Health Equity Tracker - -

      Health Equity Resources

      diff --git a/frontend/src/pages/Methodology/methodologyContent/ConditionVariable.tsx b/frontend/src/pages/Methodology/methodologyContent/ConditionVariable.tsx index ad01975853..42153be948 100644 --- a/frontend/src/pages/Methodology/methodologyContent/ConditionVariable.tsx +++ b/frontend/src/pages/Methodology/methodologyContent/ConditionVariable.tsx @@ -12,7 +12,7 @@ export default function ConditionVariable({ {Object.entries(definitions).map(([itemKey, itemVal]) => { return (
      -

      {itemKey}

      +

      {itemKey}

      {itemVal.definitions.map((def) => { return (
      , subLinks: [], - visible: false, + visible: true, }, { diff --git a/frontend/src/pages/Methodology/methodologySections/AgeAdjustmentLink.tsx b/frontend/src/pages/Methodology/methodologySections/AgeAdjustmentLink.tsx index 6b31d6e4d3..2bfe114158 100644 --- a/frontend/src/pages/Methodology/methodologySections/AgeAdjustmentLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/AgeAdjustmentLink.tsx @@ -124,9 +124,9 @@ const AgeAdjustmentLink = () => { .

      -

      +

      Data Sourcing -

      +

      In order to do an age-adjustment, we needed the following pieces of information: @@ -177,9 +177,9 @@ const AgeAdjustmentLink = () => {

    -

    +

    Algorithm -

    +

    In order to generate the age-adjusted ratios, we do the following

    @@ -278,12 +278,12 @@ const AgeAdjustmentLink = () => { -

    Age-Adjustment Example: HIV Deaths -

    +

    Here is an example of a single state with two races,{' '} Race A and Race B, with diff --git a/frontend/src/pages/Methodology/methodologySections/BehavioralHealthLink.tsx b/frontend/src/pages/Methodology/methodologySections/BehavioralHealthLink.tsx index 6f4f19ca15..1427d77ec2 100644 --- a/frontend/src/pages/Methodology/methodologySections/BehavioralHealthLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/BehavioralHealthLink.tsx @@ -39,7 +39,6 @@ export default function BehavioralHealthLink() { Behavioral Health - Health Equity Tracker -

    Behavioral Health

    -

    Data Sourcing -

    +

    The data on behavioral health conditions such as frequent mental distress, depression, and excessive drinking, featured in the Health diff --git a/frontend/src/pages/Methodology/methodologySections/ChronicDiseaseLink.tsx b/frontend/src/pages/Methodology/methodologySections/ChronicDiseaseLink.tsx index acba278bd8..7f17df7f85 100644 --- a/frontend/src/pages/Methodology/methodologySections/ChronicDiseaseLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/ChronicDiseaseLink.tsx @@ -34,7 +34,6 @@ const ChronicDiseaseLink = () => { Chronic Diseases - Health Equity Tracker -

    Chronic Diseases

    { }, ]} /> -

    Data Sourcing -

    +

    For chronic diseases like COPD and diabetes, our tracker sources data primarily from{' '} diff --git a/frontend/src/pages/Methodology/methodologySections/CommunitySafetyLink.tsx b/frontend/src/pages/Methodology/methodologySections/CommunitySafetyLink.tsx index 7ecd75c043..8f102957da 100644 --- a/frontend/src/pages/Methodology/methodologySections/CommunitySafetyLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/CommunitySafetyLink.tsx @@ -29,7 +29,6 @@ const CommunitySafetyLink = () => { Community Safety - Health Equity Tracker -

    Community Safety

    { ]} /> -

    Data Sourcing -

    +

    The CDC’s Web-based Injury Statistics Query and Reporting System (WISQARS) collects and provides data on gun deaths in the United @@ -74,8 +73,8 @@ const CommunitySafetyLink = () => {

    -

    WISQARS Injuries Measures

    -
    Conditions
    +

    WISQARS Injuries Measures

    +

    Conditions

      <>
    • @@ -98,7 +97,7 @@ const CommunitySafetyLink = () => {
    -
    Metrics
    +

    Metrics

    • Deaths per 100k: Rate of deaths caused by @@ -117,7 +116,7 @@ const CommunitySafetyLink = () => {
    -

    Demographic Identifiers

    +

    Demographic Identifiers

    Race/ethnicity: WISQARS' methodology includes race category data from 2018 onward, aligning with WISQARS’ diff --git a/frontend/src/pages/Methodology/methodologySections/Covid19Link.tsx b/frontend/src/pages/Methodology/methodologySections/Covid19Link.tsx index 617df6785c..e1f6ccf45d 100644 --- a/frontend/src/pages/Methodology/methodologySections/Covid19Link.tsx +++ b/frontend/src/pages/Methodology/methodologySections/Covid19Link.tsx @@ -39,7 +39,6 @@ export default function Covid19Link() { COVID-19 - Health Equity Tracker -

    COVID-19

    -

    +

    Data Sourcing -

    +

    The primary data source is the CDC Case Surveillance Restricted Access Detailed Data. This dataset allows for detailed breakdowns by race, diff --git a/frontend/src/pages/Methodology/methodologySections/DataMethodDefinitionsLink.tsx b/frontend/src/pages/Methodology/methodologySections/DataMethodDefinitionsLink.tsx index 2fc7862415..203c85820b 100644 --- a/frontend/src/pages/Methodology/methodologySections/DataMethodDefinitionsLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/DataMethodDefinitionsLink.tsx @@ -12,9 +12,8 @@ export default function DataMethodDefinitionsLink() { Data Methods - Health Equity Tracker -

    Data Methods

    -

    Population

    +

    Population

    Unless otherwise noted throughout this methodology, population counts and rates are obtained from the American Community Survey (ACS) 5-year @@ -25,9 +24,9 @@ export default function DataMethodDefinitionsLink() { {acsYear}.

    -

    +

    Social Vulnerability Index (SVI) -

    +

    To provide context when viewing county-level reports, SVI rankings are obtained from the CDC and incorporated into our alerting system where @@ -50,7 +49,7 @@ export default function DataMethodDefinitionsLink() { services.

    -

    Visualizations

    +

    Visualizations

    Please consider the impact of under-reporting and data gaps when exploring the visualizations. These issues may lead to incorrect diff --git a/frontend/src/pages/Methodology/methodologySections/DataSourcesLink.tsx b/frontend/src/pages/Methodology/methodologySections/DataSourcesLink.tsx index 5a5ae786fa..1d8b643cd7 100644 --- a/frontend/src/pages/Methodology/methodologySections/DataSourcesLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/DataSourcesLink.tsx @@ -9,7 +9,6 @@ export default function DataSourcesLink() { Data Sources - Health Equity Tracker -

    Source Acquisition

    The Health Equity Tracker is committed to providing accurate, @@ -18,7 +17,6 @@ export default function DataSourcesLink() { and present our data.

    -

    Data Sources

    All data in the Health Equity Tracker is sourced from reputable and public databases, including the Centers for Disease Control and @@ -27,9 +25,9 @@ export default function DataSourcesLink() { relevant details, can be found in our data catalog.

    -

    +

    Data Collection -

    +
    • Methods: Data are retrieved from publicly sourced application @@ -42,9 +40,9 @@ export default function DataSourcesLink() {
    -

    +

    Data Processing -

    +
    • @@ -66,12 +64,12 @@ export default function DataSourcesLink() {
    -

    Visualization Techniques -

    +

    The Health Equity Tracker employs a range of visualization techniques to present data in an intuitive and user-friendly manner. @@ -79,45 +77,45 @@ export default function DataSourcesLink() { tailored to the specific type of data being presented.

    -

    +

    Dataset Limitations -

    +

    While we strive for accuracy, some datasets may have inherent limitations, including gaps, potential biases, or uncertainties. We transparently communicate these limitations whenever relevant.

    -

    Updates and Revisions -

    +

    Data sources are continuously monitored for updates. The Health Equity Tracker ensures that all visualizations and datasets are refreshed in line with the latest available data.

    -

    Stakeholder Engagement -

    +

    We value the input of various stakeholders, including health professionals, community leaders, and the general public, in shaping the content and presentation of our tracker.

    -

    References and Citations -

    +

    The entire Health Equity Tracker codebase is publicly available and open-source; contributions are welcome via{' '} @@ -136,9 +134,9 @@ export default function DataSourcesLink() { contact us.

    -

    +

    Contact Information -

    +
    diff --git a/frontend/src/pages/Methodology/methodologySections/GlossaryLink.tsx b/frontend/src/pages/Methodology/methodologySections/GlossaryLink.tsx index 44ceb2d505..8ab3d5813c 100644 --- a/frontend/src/pages/Methodology/methodologySections/GlossaryLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/GlossaryLink.tsx @@ -23,7 +23,6 @@ function GlossaryLink() { Glossary - Health Equity Tracker -

    Glossary

    diff --git a/frontend/src/pages/Methodology/methodologySections/HivLink.tsx b/frontend/src/pages/Methodology/methodologySections/HivLink.tsx index a93830cbbe..8f29768533 100644 --- a/frontend/src/pages/Methodology/methodologySections/HivLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/HivLink.tsx @@ -30,7 +30,6 @@ const HivLink = () => { HIV - Health Equity Tracker -

    HIV

    { ]} /> -

    +

    Data Sourcing -

    +

    The CDC's National Center for HIV, Viral Hepatitis, STD, and TB Prevention (NCHHSTP) collects and studies information on the number of @@ -89,7 +88,7 @@ const HivLink = () => { 2021 as our reference year when showcasing data from a single year.

    Variable Data Compilation and Analysis diff --git a/frontend/src/pages/Methodology/methodologySections/LimitationsLink.tsx b/frontend/src/pages/Methodology/methodologySections/LimitationsLink.tsx index 3c87af415a..e28697adbd 100644 --- a/frontend/src/pages/Methodology/methodologySections/LimitationsLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/LimitationsLink.tsx @@ -15,12 +15,11 @@ export default function LimitationsLink() { Limitations and Missing Data - Health Equity Tracker -

    Limitations and Missing Data

    -

    Limitations

    +

    Limitations

    While we strive for accuracy, some of the limitations include:

    -

    Data Accuracy and Completeness

    +

    Data Accuracy and Completeness

    Data collected from sources like the CDC may have inaccuracies or incompleteness due to errors in reporting, variations in data @@ -28,14 +27,14 @@ export default function LimitationsLink() { populations. This can lead to biases or distortions in the representation of disease prevalence.

    -

    Temporal Lag

    +

    Temporal Lag

    There might be a lag between the occurrence of a disease and its reporting. This delay can affect the timeliness of the data presented on the health equity tracker, potentially hindering real-time decision-making.

    -

    Geographical Resolution

    +

    Geographical Resolution

    While choropleth maps provide a visual representation of data at the @@ -43,7 +42,7 @@ export default function LimitationsLink() { may not be sufficient for detecting localized outbreaks or disparities within smaller geographic areas.

    -

    Population Heterogeneity

    +

    Population Heterogeneity

    Population characteristics can vary significantly across different @@ -52,7 +51,7 @@ export default function LimitationsLink() { as differences in socioeconomic status, access to healthcare, or cultural factors that influence health outcomes.

    -

    Ecological Fallacy

    +

    Ecological Fallacy

    This occurs when inferences about individuals are drawn from @@ -61,7 +60,7 @@ export default function LimitationsLink() { affected similarly. Drawing conclusions about individuals based solely on aggregated data can lead to erroneous assumptions.

    -

    Data Interpretation

    +

    Data Interpretation

    Visualizations like choropleth maps can simplify complex data, but @@ -69,7 +68,7 @@ export default function LimitationsLink() { to ensure that interpretations of the maps consider the context, potential confounding variables, and limitations of the data source.

    -

    External Factors

    +

    External Factors

    Other external factors, such as changes in healthcare policies, @@ -78,9 +77,9 @@ export default function LimitationsLink() { adequately captured in the data or accounted for in the analysis.

    -

    +

    What Data Are Missing -

    + Medication Utilization - Health Equity Tracker -

    HIV

    -

    Data Sourcing -

    +

    Data presented is from 2020 and is sourced directly from the Medicare Administrative Data and encoded based on the fields below. For these @@ -126,8 +125,8 @@ export default function MedicareMedicationLink() {

    -

    Medicare PQA Adherence

    -
    Conditions
    +

    Medicare PQA Adherence

    +

    Conditions

    • Renin Angiotensin System Antagonists{' '} @@ -170,7 +169,7 @@ export default function MedicareMedicationLink() {
    -
    Metrics
    +

    Metrics

    • Adherence Rate: this rate measures the @@ -181,11 +180,11 @@ export default function MedicareMedicationLink() {
    -

    +

    Medicare NQF Adherence -

    + -
    Conditions
    +

    Conditions

    • @@ -204,7 +203,7 @@ export default function MedicareMedicationLink() { )}
    -
    Metrics
    +

    Metrics

    • @@ -234,9 +233,9 @@ export default function MedicareMedicationLink() {
    -

    Medicare Disease Measures

    +

    Medicare Disease Measures

    -
    Conditions
    +

    Conditions

    • HIV cases @@ -249,7 +248,7 @@ export default function MedicareMedicationLink() {
    -
    Metrics
    +

    Metrics

    • Cases per 100k: Rate of beneficiaries with @@ -283,9 +282,9 @@ export default function MedicareMedicationLink() {
    -

    +

    Medicare Demographic Identifiers -

    +

    Race/ethnicity: Medicare enhances the race and ethnicity of each beneficiary that has been used by the Social diff --git a/frontend/src/pages/Methodology/methodologySections/MethodologyHomeLink.tsx b/frontend/src/pages/Methodology/methodologySections/MethodologyHomeLink.tsx index 43b1736734..1cf3230ade 100644 --- a/frontend/src/pages/Methodology/methodologySections/MethodologyHomeLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/MethodologyHomeLink.tsx @@ -7,7 +7,6 @@ const MethodologyHomeLink = () => { Methodology - Health Equity Tracker -

    Methodology

    diff --git a/frontend/src/pages/Methodology/methodologySections/MetricsLink.tsx b/frontend/src/pages/Methodology/methodologySections/MetricsLink.tsx index 4ffede7fc6..4d21024764 100644 --- a/frontend/src/pages/Methodology/methodologySections/MetricsLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/MetricsLink.tsx @@ -12,12 +12,11 @@ export default function MetricsLink() { Metrics - Health Equity Tracker -

    Metrics

    -

    +

    Percent Share Example: COVID-19 Cases -

    + In the example below, we use COVID-19 cases as the variable, and race and ethnicity as the demographic diff --git a/frontend/src/pages/Methodology/methodologySections/PdohLink.tsx b/frontend/src/pages/Methodology/methodologySections/PdohLink.tsx index b5187c90e5..4c3ce06ab1 100644 --- a/frontend/src/pages/Methodology/methodologySections/PdohLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/PdohLink.tsx @@ -36,7 +36,6 @@ const PdohLink = () => { Political Determinants of Health - Health Equity Tracker -

    Political Determinants of Health

    { }, ]} /> -

    +

    Data Sourcing -

    +

    We gather our information on incarcerated individuals (including children) in the U.S. from trusted sources:

    -

    - Bureau of Justice Statistic (BJS) -

    +

    Bureau of Justice Statistic (BJS)

    Provides comprehensive reports on people under correctional control. Our insights are based on combining data from their “Prisoners in 2020” and “Census of Jails 2005-2019” reports.

    -

    Vera Institute for Justice

    +

    Vera Institute for Justice

    Offers detailed research on incarceration trends at the county level.

    -

    Breakdown of Our Reports

    -
    By Age
    +

    Breakdown of Our Reports

    +

    By Age

    • Nationwide data: From BJS's "Prisoners Table 10" @@ -81,20 +78,20 @@ const PdohLink = () => { State-specific data: From BJS's "Prisoners Table 2".
    -
    By Race
    +

    By Race

    • Nationwide & State-specific data: From BJS's "Prisoners Appendix Table 2".
    -
    By Sex
    +

    By Sex

    • Nationwide & State-specific data: From BJS's "Prisoners Table 2".
    -
    Special Reports
    +

    Special Reports

    • Information on children in prison: From BJS's "Prisoners Table 13". @@ -110,7 +107,7 @@ const PdohLink = () => {

      Understanding Jails vs. Prisons

      -

      Jails

      +

      Jails

      Jails are local facilities that primarily house individuals awaiting trial or sentencing, or those sentenced to less than a year. Our data @@ -118,7 +115,7 @@ const PdohLink = () => { facility or weekend-only inmates. For county-level data, we focus on individuals aged 15-64 using data from the Vera Institute.

      -

      Prisons

      +

      Prisons

      Prisons generally house individuals sentenced to over a year.

      @@ -126,22 +123,22 @@ const PdohLink = () => { person, not necessarily where they're held.

      Our data varies slightly based on the location and type:

      -
      National report
      +

      National report

      Includes all under the jurisdiction of a state or federal adult prison. Excludes territorial, military, or Indian Country facilities.

      -
      State reports
      +

      State reports

      Focuses on individuals within a state's prison system. Age-specific data is not available.

      -
      Territory reports
      +

      Territory reports

      Covers individuals in a territory's adult prison facilities. No specific demographic breakdown.

      -
      County reports
      +

      County reports

      Considers those under state prison systems but charged in a specific county. @@ -190,7 +187,7 @@ const PdohLink = () => { convicted felons are among the key political forces that determine voter participation in the justice-involved population.

      -

      Voter Disenfranchisement

      +

      Voter Disenfranchisement

      The ability to vote is described as the singular most powerful, @@ -205,18 +202,18 @@ const PdohLink = () => { > Health Impact of Incarceration -

      Immediate Health Consequences

      +

      Immediate Health Consequences

      Studies indicate that incarceration heightens the risk of chronic health conditions, infectious diseases like HIV/AIDS, mental illnesses, and substance use disorders.

      -

      Life Expectancy

      +

      Life Expectancy

      Each year spent in prison is associated with a reduction of 2 years in life expectancy.

      -

      Post-Incarceration Challenges

      +

      Post-Incarceration Challenges

      The health impact of incarceration extends beyond the confinement period. Upon reentry into society, justice-involved individuals often diff --git a/frontend/src/pages/Methodology/methodologySections/RacesAndEthnicitiesLink.tsx b/frontend/src/pages/Methodology/methodologySections/RacesAndEthnicitiesLink.tsx index 5ef240ffd2..68d3e87b1f 100644 --- a/frontend/src/pages/Methodology/methodologySections/RacesAndEthnicitiesLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/RacesAndEthnicitiesLink.tsx @@ -16,10 +16,9 @@ export default function RacesAndEthnicitiesLink() { Races and Ethnicities - Health Equity Tracker -

      Races and Ethnicities

      -

      +

      Addressing Data Gaps Stemming from Structural Inequities -

      +

      Health inequities arise from deep-rooted issues of structural racism and oppression, often resulting in gaps in data collection. We strive diff --git a/frontend/src/pages/Methodology/methodologySections/RecommendedCitationLink.tsx b/frontend/src/pages/Methodology/methodologySections/RecommendedCitationLink.tsx index 5a2d251f16..998f0b25cc 100644 --- a/frontend/src/pages/Methodology/methodologySections/RecommendedCitationLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/RecommendedCitationLink.tsx @@ -14,10 +14,9 @@ export default function RecommendedCitationLink() { Medicine's commitment to promoting data democratization, health equity, and justice.

      -

      Recommended Citation

      -

      +

      APA (American Psychological Association) Format -

      +

      diff --git a/frontend/src/pages/Methodology/methodologySections/SdohLink.tsx b/frontend/src/pages/Methodology/methodologySections/SdohLink.tsx index 4005a40176..7b50a5de72 100644 --- a/frontend/src/pages/Methodology/methodologySections/SdohLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/SdohLink.tsx @@ -49,7 +49,6 @@ function SdohLink() { Social Determinants of Health - Health Equity Tracker -

      Social Determinants of Health

      -

      +

      Data Sourcing -

      +

      Our tracker's data on some social determinants of health including{' '} preventable hospitalizations are sourced from{' '} diff --git a/frontend/src/pages/Methodology/methodologySections/TopicCategoriesLink.tsx b/frontend/src/pages/Methodology/methodologySections/TopicCategoriesLink.tsx index 672219c584..6def269796 100644 --- a/frontend/src/pages/Methodology/methodologySections/TopicCategoriesLink.tsx +++ b/frontend/src/pages/Methodology/methodologySections/TopicCategoriesLink.tsx @@ -18,7 +18,6 @@ export default function TopicCategoriesLink() { Topics by Category - Health Equity Tracker -

      Topics by Category

      The Health Equity Tracker (HET) was initially conceived in 2020 as a @@ -46,9 +45,9 @@ export default function TopicCategoriesLink() { challenges and needs of diverse communities.

      -

      +

      Categories -

      + Topic Definitions - Health Equity Tracker -

      Topic Definitions

      {CATEGORIES_LIST.map((category) => { const categoryConfigs = category.options.flatMap( @@ -28,9 +27,9 @@ export default function TopicDefinitionsLink() { key={category.title} >
      -

      +

      {category.title} -

      + {categoryConfigs.map((config: DataTypeConfig) => { return ( @@ -51,8 +50,6 @@ export default function TopicDefinitionsLink() {
      ) })} - - {/* */}
) diff --git a/frontend/src/pages/News/NewsAndStoriesPage.tsx b/frontend/src/pages/News/NewsAndStoriesPage.tsx index ea4067fd08..429c4b401c 100644 --- a/frontend/src/pages/News/NewsAndStoriesPage.tsx +++ b/frontend/src/pages/News/NewsAndStoriesPage.tsx @@ -149,12 +149,12 @@ export default function NewsAndStoriesPage() { id='main-content' className='mx-auto flex w-svw max-w-lgXl flex-col justify-center px-8 py-16' > -

News and Stories -

+

We believe in the power of storytelling. The Health Equity Tracker diff --git a/frontend/src/pages/News/NewsAndStoriesPreviewCardOutlined.tsx b/frontend/src/pages/News/NewsAndStoriesPreviewCardOutlined.tsx index 8a50f22f64..49b0e69124 100644 --- a/frontend/src/pages/News/NewsAndStoriesPreviewCardOutlined.tsx +++ b/frontend/src/pages/News/NewsAndStoriesPreviewCardOutlined.tsx @@ -33,7 +33,7 @@ export default function NewsAndStoriesPreviewCardOutlined({ navigate(`${NEWS_PAGE_LINK}?category=${encodeURIComponent(tagName)}`) } return ( -

@@ -49,20 +49,20 @@ export default function NewsAndStoriesPreviewCardOutlined({ }} >
-

+

{getHtml(article.title.rendered, true)} -

+
- + ) } diff --git a/frontend/src/pages/News/ShareYourStory.tsx b/frontend/src/pages/News/ShareYourStory.tsx index 4f4e56621d..90adda5705 100644 --- a/frontend/src/pages/News/ShareYourStory.tsx +++ b/frontend/src/pages/News/ShareYourStory.tsx @@ -42,9 +42,9 @@ export default function ShareYourStory() {
-

+

Submission guidelines -

+
diff --git a/frontend/src/pages/Policy/policyComponents/CardLeftIcon.tsx b/frontend/src/pages/Policy/policyComponents/CardLeftIcon.tsx index 6fe050f422..0c051dd4c4 100644 --- a/frontend/src/pages/Policy/policyComponents/CardLeftIcon.tsx +++ b/frontend/src/pages/Policy/policyComponents/CardLeftIcon.tsx @@ -15,7 +15,7 @@ const CardLeftIcon: React.FC = ({ icon, }) => { return ( -
  • +
    {icon} @@ -33,7 +33,7 @@ const CardLeftIcon: React.FC = ({

    {advice}

    -
  • + ) } diff --git a/frontend/src/pages/Policy/policyComponents/PolicyPage.tsx b/frontend/src/pages/Policy/policyComponents/PolicyPage.tsx index 0bb5d395c4..f5fee77115 100644 --- a/frontend/src/pages/Policy/policyComponents/PolicyPage.tsx +++ b/frontend/src/pages/Policy/policyComponents/PolicyPage.tsx @@ -23,18 +23,12 @@ export default function PolicyPage() { Policy Context - Health Equity Tracker -

    - {activeRoute?.label} -

    -
    -

    Gun Violence Policy Context Page

    -
    @@ -59,12 +53,11 @@ export default function PolicyPage() {
    - {activeRoute?.visible && isMobileView && ( -

    + {activeRoute?.visible && ( +

    {activeRoute?.label}

    )} -

    {activeRoute?.label}

    @@ -87,13 +80,6 @@ export default function PolicyPage() { key={routeConfig.path} > -

    - {routeConfig.label} -

    - = ({ {icon}
    -

    {title}

    +

    {title}

    {description}

      diff --git a/frontend/src/pages/Policy/policyContent/policyRouteConfigs.tsx b/frontend/src/pages/Policy/policyContent/policyRouteConfigs.tsx index 2841cb01f1..2c6d1b30ab 100644 --- a/frontend/src/pages/Policy/policyContent/policyRouteConfigs.tsx +++ b/frontend/src/pages/Policy/policyContent/policyRouteConfigs.tsx @@ -112,7 +112,6 @@ export const policyRouteConfigs: RouteConfig[] = [ path: 'ga-homicides-city-size', }, ], - visible: true, }, { isTopLevel: true, @@ -203,7 +202,6 @@ export const policyRouteConfigs: RouteConfig[] = [ path: 'breakdown-summary-data-table', }, ], - visible: true, }, { isTopLevel: true, diff --git a/frontend/src/pages/Policy/policySections/CommunitySafetyFaqsTab.tsx b/frontend/src/pages/Policy/policySections/CommunitySafetyFaqsTab.tsx index 3fdfe5e838..b951af91e6 100644 --- a/frontend/src/pages/Policy/policySections/CommunitySafetyFaqsTab.tsx +++ b/frontend/src/pages/Policy/policySections/CommunitySafetyFaqsTab.tsx @@ -8,7 +8,6 @@ export default function CommunitySafetyFaqsTab() { FAQs - Health Equity Tracker -

      FAQs

      ) diff --git a/frontend/src/pages/Policy/policySections/CrisisOverviewTab.tsx b/frontend/src/pages/Policy/policySections/CrisisOverviewTab.tsx index c20d859b39..865c5a3cec 100644 --- a/frontend/src/pages/Policy/policySections/CrisisOverviewTab.tsx +++ b/frontend/src/pages/Policy/policySections/CrisisOverviewTab.tsx @@ -17,9 +17,7 @@ export default function CrisisOverviewTab() { Crisis Overview - Health Equity Tracker -

      - Understanding the Crisis of Gun Violence in Atlanta -

      +

      diff --git a/frontend/src/pages/Policy/policySections/CurrentEffortsTab.tsx b/frontend/src/pages/Policy/policySections/CurrentEffortsTab.tsx index 5768bb558c..96f447b5a9 100644 --- a/frontend/src/pages/Policy/policySections/CurrentEffortsTab.tsx +++ b/frontend/src/pages/Policy/policySections/CurrentEffortsTab.tsx @@ -9,7 +9,6 @@ import { Helmet } from 'react-helmet-async' import { HetOverline } from '../../../styles/HetComponents/HetOverline' import HetTerm from '../../../styles/HetComponents/HetTerm' import HetTermUnderline from '../../../styles/HetComponents/HetTermUnderline' -import ResourceItem from '../policyComponents/ResourceItem' import ResourceSection from '../policyComponents/ResourceSection' import { communityResources, @@ -25,7 +24,6 @@ export default function CurrentEffortsTab() { Current Efforts - Health Equity Tracker -

      Current Efforts

      We identify and analyze current intervention policies in Atlanta, examining their effectiveness and areas for improvement. This includes diff --git a/frontend/src/pages/Policy/policySections/DataCollectionTab.tsx b/frontend/src/pages/Policy/policySections/DataCollectionTab.tsx index 8a600cf543..3592f8cd0c 100644 --- a/frontend/src/pages/Policy/policySections/DataCollectionTab.tsx +++ b/frontend/src/pages/Policy/policySections/DataCollectionTab.tsx @@ -11,14 +11,13 @@ export default function DataCollectionTab() { Data Collection - Health Equity Tracker -

      Data Collection

      -

      +

      CDC's WISQARS™(Web-based Injury Statistics Query and Reporting System) -

      +

      The{' '} @@ -26,7 +25,7 @@ export default function DataCollectionTab() { CDC's WISQARS™ (Web-based Injury Statistics Query and Reporting System) {' '} - dataset includes a wide range of information related to gun-related + dataset includes a wide range of information related to gun-related injuries, providing a holistic perspective on the impact of gun-related incidents.

      @@ -61,9 +60,9 @@ export default function DataCollectionTab() {
      -

      +

      Key Metrics -

      +

      Our key metrics encompass data on fatal gun-related incidents, with a @@ -74,9 +73,9 @@ export default function DataCollectionTab() {

      -

      +

      Data Limitations -

      +

      While our dataset is comprehensive, it's important to note certain limitations: potential underreporting in certain demographics, and the @@ -87,9 +86,9 @@ export default function DataCollectionTab() {

      -

      +

      Fatality Definitions -

      +
      -

      +

      Available Data -

      +

      Currently, all of our gun violence datasets include national- and state-level data. Here is a brief overview of what is included in our diff --git a/frontend/src/pages/Policy/policySections/GunViolencePolicyHomeLink.tsx b/frontend/src/pages/Policy/policySections/GunViolencePolicyHomeLink.tsx index c5c2056aab..428542251f 100644 --- a/frontend/src/pages/Policy/policySections/GunViolencePolicyHomeLink.tsx +++ b/frontend/src/pages/Policy/policySections/GunViolencePolicyHomeLink.tsx @@ -6,9 +6,9 @@ export default function GunViolencePolicyHomeLink() {

      -

      +

      Understanding the Crisis of Gun Violence in Atlanta -

      +

      This pervasive public health challenge harms communities nationwide, diff --git a/frontend/src/pages/Policy/policySections/HowToUseTheDataTab.tsx b/frontend/src/pages/Policy/policySections/HowToUseTheDataTab.tsx index df80d098af..1d40be7909 100644 --- a/frontend/src/pages/Policy/policySections/HowToUseTheDataTab.tsx +++ b/frontend/src/pages/Policy/policySections/HowToUseTheDataTab.tsx @@ -8,15 +8,15 @@ export default function HowToUseTheDataTab() { How To Use The Data - Health Equity Tracker -

      How To Use The Data

      +

      How to Use the Data

      -

      +

      HET Data Visualization Maps and Charts -

      +

      In Atlanta, as in many cities, gun violence remains a pressing issue, disproportionately affecting marginalized communities. The open-source @@ -37,9 +37,9 @@ export default function HowToUseTheDataTab() {

      -

      +

      {dataVisual.title} -

      +
      {dataVisual.customCard} @@ -84,9 +84,9 @@ export default function HowToUseTheDataTab() {

    -

    +

    How to Use -

    +
    {dataVisual.details.howToUse.map((step, i) => (

    diff --git a/frontend/src/pages/Policy/policySections/OurFindingsTab.tsx b/frontend/src/pages/Policy/policySections/OurFindingsTab.tsx index 94dcb90d20..ce8c059de0 100644 --- a/frontend/src/pages/Policy/policySections/OurFindingsTab.tsx +++ b/frontend/src/pages/Policy/policySections/OurFindingsTab.tsx @@ -15,13 +15,13 @@ export default function OurFindingsTab() { Addressing Inequities - Health Equity Tracker -

    Addressing Inequities

    +

    Our Findings

    -

    +

    Georgia's Youth Fatality Rates -

    + {youthFatalitiesFacts.map((youthFatalitiesFact) => (
    -

    +

    Georgia's Homicide Rates -

    + {homicideFacts.map((homicideFact) => (
    -

    +

    Georgia's Suicide Rates -

    + {suicideFacts.map((suicideFact) => (
    -

    +

    Georgia's Homicide Rates Among Black Men -

    + {urbanicityFacts.map((urbanicityFact) => (
    Reform Opportunities - Health Equity Tracker -

    Reform Opportunities

    Our data points to several reform opportunities, particularly in enhancing community-based interventions, improving data collection on @@ -28,9 +27,9 @@ export default function ReformOpportunitiesTab() {

    -

    +

    Insights from the Advocacy Community -

    +
      {effortsAndInsights.map((effortsAndInsight, index) => { const isMobileShadow = !isMdAndUp && index % 2 === 0 @@ -40,7 +39,7 @@ export default function ReformOpportunitiesTab() { (Math.floor(index / 2) % 2 !== 0 && index % 2 !== 0)) return ( -
      -
      + ) })}
    @@ -68,9 +67,9 @@ export default function ReformOpportunitiesTab() { ' /> -

    +

    Legislative Items to Consider for Policy Changes -

    + diff --git a/frontend/src/pages/WhatIsHealthEquity/WhatIsHealthEquityPage.tsx b/frontend/src/pages/WhatIsHealthEquity/WhatIsHealthEquityPage.tsx index 0e5f333920..f625ae676d 100644 --- a/frontend/src/pages/WhatIsHealthEquity/WhatIsHealthEquityPage.tsx +++ b/frontend/src/pages/WhatIsHealthEquity/WhatIsHealthEquityPage.tsx @@ -1,6 +1,6 @@ -import { useEffect, useRef, useState } from 'react' +import { useEffect, useState } from 'react' import { Helmet } from 'react-helmet-async' -import { Navigate, Outlet, Route, Routes, useLocation } from 'react-router-dom' +import { useLocation } from 'react-router-dom' import { HetOverline } from '../../styles/HetComponents/HetOverline' import { HetTermRaised } from '../../styles/HetComponents/HetTermRaised' import { useResponsiveWidth } from '../../utils/hooks/useResponsiveWidth' @@ -46,14 +46,11 @@ export default function WhatIsHealthEquityPage() { >

    What is Health Equity?

    -

    What is Health Equity?

    -
    -

    +

    Don't know where to start? -

    +

    Discover how the Health Equity Tracker can be your tool to drive change and advance health equity in your community. diff --git a/frontend/src/pages/WhatIsHealthEquity/wiheSections/FaqSection.tsx b/frontend/src/pages/WhatIsHealthEquity/wiheSections/FaqSection.tsx index 6de9b3f241..752b4f4692 100644 --- a/frontend/src/pages/WhatIsHealthEquity/wiheSections/FaqSection.tsx +++ b/frontend/src/pages/WhatIsHealthEquity/wiheSections/FaqSection.tsx @@ -6,9 +6,9 @@ import { faqMappings } from '../../FAQs/FaqsPageData' export default function FaqSection() { return (

    -

    +

    Frequently asked questions -

    + 0 && (
    -

    Definitions: -

    + @@ -207,7 +207,7 @@ function ReportProvider(props: ReportProviderProps) {
    )} -

    What data are missing?

    +

    What data are missing?

    Unfortunately there are crucial data missing in our sources.

    -

    Missing and misidentified people

    +

    Missing and misidentified people

    Currently, there are no required or standardized race and ethnicity categories for data collection across state and local jurisdictions. The diff --git a/frontend/src/reports/ui/DefinitionsList.tsx b/frontend/src/reports/ui/DefinitionsList.tsx index a7234aef06..493e84a6e0 100644 --- a/frontend/src/reports/ui/DefinitionsList.tsx +++ b/frontend/src/reports/ui/DefinitionsList.tsx @@ -38,9 +38,9 @@ export default function DefinitionsList( return (