diff --git a/packages/ace-core/src/checker/checker-epub.js b/packages/ace-core/src/checker/checker-epub.js
index e76ec873..f5399bf6 100644
--- a/packages/ace-core/src/checker/checker-epub.js
+++ b/packages/ace-core/src/checker/checker-epub.js
@@ -159,6 +159,9 @@ function checkMetadata(assertions, epub) {
if (!Array.isArray(values)) {
values = [values]
}
+ // Parse list values
+ values = values.map(value => value.trim().replace(',', ' ').replace(/\s{2,}/g, ' ').split(' '))
+ values = [].concat(...values);
// Check metadata values are allowed
// see https://www.w3.org/wiki/WebSchemas/Accessibility
if (meta.allowedValues) {
diff --git a/tests/__tests__/epub-rules.test.js b/tests/__tests__/epub-rules.test.js
index ee85c098..b8ca185d 100644
--- a/tests/__tests__/epub-rules.test.js
+++ b/tests/__tests__/epub-rules.test.js
@@ -77,6 +77,13 @@ describe('accessibility metadata', () => {
}),
}),
]));
+ expect(assertions).not.toEqual(expect.arrayContaining([
+ expect.objectContaining({
+ 'earl:test': expect.objectContaining({
+ 'dct:title': 'metadata-accessmodesufficient-invalid',
+ }),
+ }),
+ ]));
});
test('`printPageNumbers` is declared as a feature but the Nav Doc has no page list', async () => {
const report = await ace('../data/epubrules-metadata-printPageNumbers-nopagelist');
diff --git a/tests/data/epubrules-metadata/EPUB/package.opf b/tests/data/epubrules-metadata/EPUB/package.opf
index 0e136fac..19f543a8 100644
--- a/tests/data/epubrules-metadata/EPUB/package.opf
+++ b/tests/data/epubrules-metadata/EPUB/package.opf
@@ -13,7 +13,7 @@
noMotionSimulationHazard
text
- textual
+ visual,textual