content: repair visitor-facing copy and briefing accessibility

Public pages no longer describe their own pipeline, case and service
labels are real accessible names, and the contact briefing writes
localized fields without empty optional lines.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 17:46:32 +02:00
parent d954361724
commit cfc7580a8f
24 changed files with 125 additions and 110 deletions

View File

@@ -1,11 +1,9 @@
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { ContentService } from '../../core/content/content.service';
import { CaseStudy } from '../../shared/case-study/case-study';
import { ContentSection } from '../../shared/content-section/content-section';
import { PageHero } from '../../shared/page-hero/page-hero';
const INTRO_SECTION_IDS = new Set(['selection', 'reading']);
@Component({
selector: 'app-projects-page',
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -16,20 +14,6 @@ const INTRO_SECTION_IDS = new Set(['selection', 'reading']);
export class ProjectsPage {
private readonly content = inject(ContentService);
protected readonly page = this.content.page('projects');
protected readonly page = this.content.projects();
protected readonly cases = this.content.cases();
protected readonly introSections = computed(() =>
this.page().sections.filter((section) => INTRO_SECTION_IDS.has(section.id)),
);
protected readonly caseLabels = computed(() => {
const headlines = new Map(
this.page().sections.map((section) => [section.id, section.headline] as const),
);
return {
situation: headlines.get('situation') ?? '',
approach: headlines.get('approach') ?? '',
outcome: headlines.get('outcome') ?? '',
stack: headlines.get('stack') ?? '',
};
});
}