@@ -317,6 +317,8 @@ class AnnotoriousAnnotator extends HTMLElement {
317317 transition: background-color 0.3s;
318318 z-index: 9;
319319 border: none;
320+ text-decoration: none;
321+ font: inherit;
320322 }
321323 #projectManagementBtn:hover,
322324 #projectManagementBtn:focus-visible {
@@ -364,12 +366,12 @@ class AnnotoriousAnnotator extends HTMLElement {
364366 <input type="checkbox" id="seeTool" checked>
365367 </label>
366368 <button id="deleteAllBtn" type="button">Delete All Annotations</button>
367- <button id="createColumnsBtn" type="button" >Manage Columns</button >
369+ <a id="createColumnsBtn">Manage Columns</a >
368370 <button id="saveBtn" type="button">Save Annotations</button>
369371 </div>
370372 <button type="button" id="autoParseBtn">Auto Parse</button>
371373 <tpen-page-selector></tpen-page-selector>
372- <button type="button" id="projectManagementBtn"><span aria-hidden="true">↪</span> Go to Project Management</button >
374+ <a id="projectManagementBtn"><span aria-hidden="true">↪</span> Go to Project Management</a >
373375 <div id="annotator-container"> Loading Annotorious and getting the TPEN3 Page information... </div>
374376 <div id="ruler"></div>
375377 <span id="sampleRuler"></span>
@@ -453,9 +455,7 @@ class AnnotoriousAnnotator extends HTMLElement {
453455 this . renderCleanup . onElement ( editTool , "change" , ( e ) => this . toggleEditingMode ( e ) )
454456 this . renderCleanup . onElement ( eraseTool , "change" , ( e ) => this . toggleErasingMode ( e ) )
455457 this . renderCleanup . onElement ( seeTool , "change" , ( e ) => this . toggleAnnotationVisibility ( e ) )
456- this . renderCleanup . onElement ( createColumnsBtn , "click" , ( ) =>
457- window . location . href = `/manage-columns?projectID=${ TPEN . activeProject . _id } &pageID=${ this . #annotationPageID} `
458- )
458+ createColumnsBtn . href = `/manage-columns?projectID=${ TPEN . activeProject . _id } &pageID=${ this . #annotationPageID} `
459459 this . renderCleanup . onElement ( saveButton , "click" , ( e ) => {
460460 this . #annotoriousInstance. cancelSelected ( )
461461 // Timeout required in order to allow the unfocus native functionality to complete for $isDirty.
@@ -702,6 +702,9 @@ class AnnotoriousAnnotator extends HTMLElement {
702702 } )
703703
704704 // Link to transcribe if they have view permissions for it
705+ // NOTE: This uses OpenSeadragon.Button which creates <div> elements, not standard HTML links.
706+ // The OSD Button API does not support <a> elements, so this is an intentional exception
707+ // to the consistent navigation pattern (issue #465).
705708 if ( CheckPermissions . checkViewAccess ( "LINE" , "TEXT" ) || CheckPermissions . checkEditAccess ( "LINE" , "TEXT" ) ) {
706709 let parsingRedirectButton = new OpenSeadragon . Button ( {
707710 tooltip : "Go Transcribe" ,
@@ -892,7 +895,7 @@ class AnnotoriousAnnotator extends HTMLElement {
892895 if ( CheckPermissions . checkEditAccess ( "PROJECT" ) ) {
893896 const manageProjectBtn = this . shadowRoot . querySelector ( "#projectManagementBtn" )
894897 manageProjectBtn . style . display = "block"
895- this . renderCleanup . onElement ( manageProjectBtn , "click" , ( e ) => document . location . href = `/project/manage?projectID=${ TPEN . activeProject . _id } ` )
898+ manageProjectBtn . href = `/project/manage?projectID=${ TPEN . activeProject . _id } `
896899 }
897900 }
898901
0 commit comments