@@ -69,6 +69,7 @@ public static enum Type
6969 SEARCH_KEY ,
7070 NAV_TOC_LINK ,
7171 NAV_PAGELIST_LINK ,
72+ OVERLAY_TEXT_LINK ,
7273 PICTURE_SOURCE ,
7374 PICTURE_SOURCE_FOREIGN ;
7475 }
@@ -286,6 +287,7 @@ public void checkReferences()
286287 // if (checkReference(reference)) checkReferenceSubtypes(reference);
287288 Queue <Reference > tocLinks = new LinkedList <>();
288289 Queue <Reference > pageListLinks = new LinkedList <>();
290+ Queue <Reference > overlayLinks = new LinkedList <>();
289291 for (Reference reference : references )
290292 {
291293 switch (reference .type )
@@ -299,13 +301,17 @@ public void checkReferences()
299301 case NAV_PAGELIST_LINK :
300302 pageListLinks .add (reference );
301303 break ;
304+ case OVERLAY_TEXT_LINK :
305+ overlayLinks .add (reference );
306+ break ;
302307 default :
303308 checkReference (reference );
304309 break ;
305310 }
306311 }
307312 checkReadingOrder (tocLinks , -1 , -1 );
308313 checkReadingOrder (pageListLinks , -1 , -1 );
314+ checkReadingOrder (overlayLinks , -1 , -1 );
309315 }
310316
311317 private void checkReference (Reference ref )
@@ -533,7 +539,7 @@ private void checkReadingOrder(Queue<Reference> references, int lastSpinePositio
533539 if (ref == null ) return ;
534540
535541 Preconditions
536- .checkArgument (ref .type == Type .NAV_PAGELIST_LINK || ref .type == Type .NAV_TOC_LINK );
542+ .checkArgument (ref .type == Type .NAV_PAGELIST_LINK || ref .type == Type .NAV_TOC_LINK || ref . type == Type . OVERLAY_TEXT_LINK );
537543 Resource res = resources .get (ref .refResource );
538544
539545 // abort early if the link target is not a spine item (checked elsewhere)
@@ -545,11 +551,18 @@ private void checkReadingOrder(Queue<Reference> references, int lastSpinePositio
545551 {
546552 String orderContext = LocalizedMessages .getInstance (locale ).getSuggestion (MessageId .NAV_011 ,
547553 "spine" );
548- report .message (MessageId .NAV_011 ,
549- EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ),
550- (ref .type == Type .NAV_TOC_LINK ) ? "toc" : "page-list" , ref .value , orderContext );
551- report .message (MessageId .INF_001 ,
552- EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), "https://github.com/w3c/publ-epub-revision/issues/1283" );
554+
555+ if (ref .type == Type .OVERLAY_TEXT_LINK ) {
556+ report .message (MessageId .MED_015 ,
557+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), ref .value , orderContext );
558+ }
559+ else {
560+ report .message (MessageId .NAV_011 ,
561+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ),
562+ (ref .type == Type .NAV_TOC_LINK ) ? "toc" : "page-list" , ref .value , orderContext );
563+ report .message (MessageId .INF_001 ,
564+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), "https://github.com/w3c/publ-epub-revision/issues/1283" );
565+ }
553566 lastSpinePosition = targetSpinePosition ;
554567 lastAnchorPosition = -1 ;
555568 }
@@ -569,11 +582,17 @@ private void checkReadingOrder(Queue<Reference> references, int lastSpinePositio
569582 {
570583 String orderContext = LocalizedMessages .getInstance (locale ).getSuggestion (MessageId .NAV_011 ,
571584 "document" );
572- report .message (MessageId .NAV_011 ,
573- EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ),
574- (ref .type == Type .NAV_TOC_LINK ) ? "toc" : "page-list" , ref .value , orderContext );
575- report .message (MessageId .INF_001 ,
576- EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), "https://github.com/w3c/publ-epub-revision/issues/1283" );
585+ if (ref .type == Type .OVERLAY_TEXT_LINK ) {
586+ report .message (MessageId .MED_015 ,
587+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), ref .value , orderContext );
588+ }
589+ else {
590+ report .message (MessageId .NAV_011 ,
591+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ),
592+ (ref .type == Type .NAV_TOC_LINK ) ? "toc" : "page-list" , ref .value , orderContext );
593+ report .message (MessageId .INF_001 ,
594+ EPUBLocation .create (ref .source , ref .lineNumber , ref .columnNumber ), "https://github.com/w3c/publ-epub-revision/issues/1283" );
595+ }
577596 }
578597 lastAnchorPosition = targetAnchorPosition ;
579598 }
0 commit comments