Skip to content

Commit c467bcb

Browse files
committed
Update page titles to assist screen reader users
1 parent 54256c8 commit c467bcb

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

runner/src/server/plugins/engine/models/AdapterSummaryViewModel.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {AdapterViewModel} from "./AdapterViewModel";
22
import {AdapterFormModel} from "./AdapterFormModel";
3+
import { buildWindowTitle } from "../util/windowTitle";
34
import {FormSubmissionState} from "../../../../../../digital-form-builder/runner/src/server/plugins/engine/types";
45
import {HapiRequest} from "../../../../../../digital-form-builder/runner/src/server/types";
56
import {AdapterInitialiseSessionOptions} from "../../initialize-session/types";
@@ -10,6 +11,7 @@ export class AdapterSummaryViewModel extends AdapterViewModel {
1011
markAsCompleteComponent: boolean | undefined;
1112
markAsCompleteError: any;
1213
callback?: AdapterInitialiseSessionOptions;
14+
windowTitle: string;
1315

1416
constructor(
1517
pageTitle: string,
@@ -23,6 +25,9 @@ export class AdapterSummaryViewModel extends AdapterViewModel {
2325
super(pageTitle, model, state, request, page, isSavePerPageMode, validateStateTillGivenPath);
2426
this.markAsCompleteComponent = state.callback?.markAsCompleteComponent;
2527
this.markAsComplete = state.markAsComplete;
28+
29+
const serviceName = model.name || "";
30+
this.windowTitle = buildWindowTitle(pageTitle, serviceName);
2631
}
2732

2833

runner/src/server/plugins/engine/page-controllers/PageControllerBase.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {merge, reach} from "@hapi/hoek";
22
import * as querystring from "querystring";
33

4+
import { buildWindowTitle } from "../util/windowTitle";
45
import {
56
feedbackReturnInfoKey
67
} from "../../../../../../digital-form-builder/runner/src/server/plugins/engine/helpers";
@@ -148,6 +149,7 @@ export class PageControllerBase {
148149
name: string;
149150
pageTitle: string;
150151
sectionTitle: string;
152+
windowTitle: string;
151153
showTitle: boolean;
152154
components: ComponentCollectionViewModel;
153155
errors: FormSubmissionErrors;
@@ -161,6 +163,9 @@ export class PageControllerBase {
161163
} {
162164
let showTitle = true;
163165
let pageTitle = this.title;
166+
const serviceName = this.name;
167+
let windowTitle = buildWindowTitle(pageTitle, serviceName);
168+
164169
if (config.allowUserTemplates) {
165170
pageTitle = nunjucks.renderString(pageTitle, {
166171
...formData,
@@ -203,6 +208,7 @@ export class PageControllerBase {
203208
name: this.name,
204209
pageTitle,
205210
sectionTitle,
211+
windowTitle,
206212
showTitle,
207213
components,
208214
errors,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export function buildWindowTitle(pageTitle: string, serviceName: string): string {
2+
// Build the full page title
3+
const parts = [pageTitle, serviceName, "GOV.UK"].filter(
4+
part => part !== undefined && part !== null && part.trim() !== ""
5+
);
6+
return parts.join(" - ");
7+
}

runner/src/server/views/layout.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@
9797
<script src="{{ assetPath }}/tinymce.min.js"></script>
9898
{% endblock %}
9999

100-
{% block pageTitle %}
101-
{{ pageTitle }}
102-
{% endblock %}
100+
{% block pageTitle %}{{windowTitle}}{% endblock %}
103101

104102
{% block skipLink %}
105103
{{ govukSkipLink({

0 commit comments

Comments
 (0)