1 2 3<!DOCTYPE html> 4<html lang="en"> 5<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title> 6 Hours, Holidays | Conant Public Library 7</title><link rel="stylesheet" href="/assets/css/all.min.css" crossorigin="anonymous" /><link rel="stylesheet" href="/assets/css/site.min.css" /> 8
8<script type="text/javascript" src="/assets/js/site.minac48.js"></script>
8 9 <link rel="stylesheet" href="/conantnh/site.css" /> 10 <!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 10-11
10 11 <script async src="https://www.googletagmanager.com/gtag/js?id=
11G-FVVK5VDG3C
vendor: 14 bytes, lines 11-12
11"></script> 12
12<script> 13
vendor: 141 bytes, lines 13-17
13window.dataLayer = window.dataLayer || []; 14 function gtag(){dataLayer.push(arguments);} 15 gtag('js', new Date()); 16 17 gtag('config', '
17G-FVVK5VDG3C
vendor: 6 bytes, lines 17-18
17'); 18
18</script>
18 19 20
20<script type="text/javascript"> 21 function dosearch() { 22 debugger; 23 var search = $("#search").val(); 24 var searchchoice = $('input[name=searchchoice]').val(); 25 var submitto = searchchoice + escape(search); 26 window.location.href = submitto; 27 return false; 28 } 29 </script>
29 30 31
31<script type="text/javascript"> 32 function dosearch2() { 33 var sf = document.searchform2; 34 var submitto2 = sf.searchchoice2.value + escape(sf.search2.value); 35 window.location.href = submitto2; 36 return false; 37 } 38 </script>
38 39 <link rel="shortcut icon" href="/conantnh/favicon.ico" /> 40 <style>.navbartoptwo p { 41 margin-bottom: 0; 42} 43 44.navbartoptwo { 45 padding: 0; 46}</style> 47 48</head> 49 50<body class="container-fluid"> 51 <form method="post" action="./hours-holidays" id="searchform"> 52<div class="aspNetHidden"> 53<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" /> 54</div> 55 56<div class="aspNetHidden"> 57 58 <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="4F000767" /> 59</div> 60 61 <div id="js-event-view-modal" class="modal" role="dialog" style="z-index:99999"></div> 62 <header role="banner"> 63 64 <a href="#maincontentjump" style="text-decoration:underline;color:#ffffff; display:none;">Skip to Content</a> 65 <div class="navbartoptwo"> 66 <div class="container"> 67 <div class="row justify-content-between align-items-center"><div class="col"><p><br></p></div><div class="col"><p style="text-align: right;"><a href="https://www.facebook.com/Conant-Public-Library-521650288292126" name="Link to Library's Facebook account" target="_blank"><img src="/resources/images/gplfacebook (2).jpg"></a></p></div></div> 68 </div> 69 </div> 70 <!-- new section 1 --> 71 <div class="jumbotron jumbotron-fluid mb-0"> 72 <div class="container"> 73 <!--first row--> 74 <div class="row"> 75 <!--each of the divs in this first row are set to be hidden for extra small and small, visible from medium on up--> 76 <div class="col-12 col-md-2 centerall"> 77 <a href="/"><img src="/conantnh/conantnewlogosmall2.png" class="logoimage" alt="Conant Public Library"></a> 78 </div> 79 <div class="col-12 col-md-8 centerall stackdiv"> 80 <div class="headerlibraryname" style="text-align:center;">Conant Public Library</div> 81 <div class="headerlibraryaddress" style="text-align:center;">111 Main Street - Winchester, NH - 03470</div> 82 <div class="headerlibraryaddress" style="text-align:center;">(603) 239-4331</div> 83 </div> 84 <div class="col-12 col-md-2 centerall"> 85 <a href="https://conant.biblionix.com/" target="_blank"><img src="/ConantNH/librarycatalogbutton.png"></a> 86 </div> 87 88 </div> 89 90 </div> 91 92 </div> 93 <div class="librarybackgroundpic"> 94 <div class="row"> 95 <div class="col-12 col-md-12"> 96 <img src="/conantnh/conantlibpic1.jpg"> 97 </div> 98 </div> 99 </div> 100 101 102 <nav role="navigation" aria-label="site"> 103 <div style="clear:both; padding-top:0px; z-index:1000000" 104 class="menus p7AMM amm-noscript amm-responsive amm-root-menucolorschemeâ amm-rootlinks-menucolorschemeâ amm-subs-menucolorschemeâ amm-sub-borders amm-centered" 105 id="p7AMM_1" data-amm="50,1,1000,5,-10,0,1,0,0,5,1,1,1,0,0" data-amm-label="More..."> 106 <div id="p7AMMtb_1" class="amm-toolbar closed"><a title="Hide/Show Menu" href="#">≡</a></div> 107 <ul class="closed" aria-label="Navigation Menu"> 108 <li data-amm-priority="0"> 109 <a class="amm-trigger" href="/">Home</a> 110 </li> 111 <li data-amm-priority="1"><a Class="amm-trigger" href="/pages/index/227409/hours-holidays">About the Library</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227409/hours-holidays"> Hours, Holidays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227408/library-staff-and-trustees"> Library Staff and Trustees</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229932/meet-the-staff"> Meet the Staff</a></li></ul></li><li data-amm-priority="2"><a Class="amm-trigger" href="/pages/index/227666/get-a-library-card">How To?</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227666/get-a-library-card"> Get a Library Card</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227667/set-up-libby"> Set Up Libby</a></li></ul></li><li data-amm-priority="3"><a Class="amm-trigger" href="/pages/index/227668/adult-events">Calendar</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227668/adult-events"> Adult Events</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227669/kids-events"> Kids Events</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229929/library-event-photos"> Library Event Photos</a></li></ul></li><li data-amm-priority="4"><a Class="amm-trigger" href="/pages/index/227670/new-at-the-library">Books & More</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227670/new-at-the-library"> New at the Library</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227672/staff-recommendations"> Staff Recommendations</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229930/current-displays-"> Current Displays </a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/228131/past-displays"> Past Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229934/current-young-adult-
111displays"> Current Young Adult Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229935/past-young-adult-displays"> Past Young Adult Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229931/current-childrens-displays"> Current Children's Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229933/past-childrens-room-displays"> Past Children's Room Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229936/current-museum-displays"> Current Museum Displays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229937/past-museum-displays"> Past Museum Displays</a></li></ul></li><li data-amm-priority="5"><a Class="amm-trigger" href="/pages/index/227673/library-history">History</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227673/library-history"> Library History</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227674/museum-history"> Museum History</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227750/who-was-ezra-conant"> Who was Ezra Conant?</a></li></ul></li><li data-amm-priority="6"><a href="http://conant.biblionix.com/" target="_blank" rel="noopener noreferrer" >Visit Our Catalog</a><ul><li data-amm-priority="0"><a href="http://conant.biblionix.com/" target="_blank" rel="noopener noreferrer" >Visit Our Catalog</a></li></ul></li><li data-amm-priority="7"><a Class="amm-trigger" href="/pages/index/228362/board-meeting-minutes">Board of Trustees</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/228362/board-meeting-minutes"> Board Meeting Minutes</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/228363/current-board-of-trustees"> Current Board of Trustees</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/228364/board-documents"> Board Documents</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/228443/board-meeting-schedule"> Board Meeting Schedule</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229401/board-committees"> Board Committees</a></li></ul></li><li data-amm-priority="8"><a Class="amm-trigger" href="/pages/index/229402/library-policies">CPL Policies</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229402/library-policies"> Library Policies</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229710/personnel-policies"> Personnel Policies</a></li></ul></li><li data-amm-priority="9"><a Class="amm-trigger" href="/pages/index/229927/email">Contact Us</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229927/email"> Email</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229928/phone"> Phone</a></li></ul></li><li data-amm-priority="10"><a Class="amm-trigger" href="/pages/index/229938/available-passes">Museum Passes</a><ul><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229938/available-passes"> Available Passes</a></li></ul></li> 112 </ul> 113 </div> 114 </nav> 115 </header> 116 <main> 117 118 <div class="body container mt-3"> 119 <a name="maincontentjump"></a> 120 <br /> 121 122 123<div class="row"> 124 125 <div id="maincontent_divLeftMenu" class="d-none d-md-block col-lg-3 col-md-3 col-sm-12 mt-4"> 126 <nav role="navigation" aria-label="section"> 127 128 <div class="p7AMM amm-noscript amm-vertical amm-responsive amm-root-leftmenu amm-rootlinks-leftmenu amm-subs-wine amm-sub-borders amm-centered" id="p7AMM_2" data-amm="360,0,900,5,-10,0,1,0,0,5,1,1,1,0,1"> 129 <div id="p7AMMtb_2" class="amm-toolbar closed"><a title="Hide/Show Menu" href="#">≡</a></div> 130 <ul class="closed" aria-label="Navigation Menu"> 131 <li data-amm-priority="0"><a class="amm-first" href="/pages/index/227409/hours-holidays"> Hours, Holidays</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/227408/library-staff-and-trustees"> Library Staff and Trustees</a></li><li data-amm-priority="0"><a class="amm-first" href="/pages/index/229932/meet-the-staff"> Meet the Staff</a></li> 132 </ul> 133 </div> 134 </nav> 135 </div> 136 137 <div class="col-lg-9 col-md-9 col-sm-12 mt-4"> 138 <h1>Days and Hours Library is Open</h1><br><p><img src="/resources/images/ConantNewLogoSmall2.png" style="width: 136px; height: 137px; float: left;" class="note-float-left"> </p> 139 140<p>Monday 10:00 am to 6:00 pm<br> 141Wednesday 10:00 am to 8:00 pm<br> 142Friday 10:00 am to 5:00 pm<br> 143Saturday 10:00 am to 2:00 pm</p> 144<hr /><h1>Library Is Closed For the Following Holidays</h1><br><p> 145 146<!--StartFragment--><br>New Year's Day<br>Martin Luther King Jr. / Civil Rights Day<br>President's Day<br>Memorial Day<br>Independence Day<br>Labor Day<br>Columbus Day<br>Veteran's Day<br>day after Thanksgiving Day<br>Christmas Day<!--EndFragment--> 147 148<br></p><hr /> 149 </div> 150 151 </div> 152 </div> 153 154 </main> 155 156 <footer role="contentinfo"> 157 <div class="footer"> 158 <div class="container"> 159 <div id="footer" style="clear:both;"> 160 <div class="row"> 161 162 <div class="col-lg-4 col-md-12 col-sm-12 text-center"><p><strong>Library Hours</strong></p> 163 164<p>Monday 10:00 am to 6:00 pm<br> 165Wednesday 10:00 am to 8:00 pm<br> 166Friday 10:00 am to 5:00 pm<br> 167Saturday 10:00 am to 2:00 pm</p> 168</div><div class="col-lg-4 col-md-12 col-sm-12 text-center"><p style="text-align: center;"><strong>Conant Public Library</strong><br> 169111 Main Street - Winchester, NH - 03470<br> 170(603) 239-4331</p> 171 172<p style="text-align: center;"><a href="https://goo.gl/maps/kwQxjKkZ68fHAuqB8" style="color:#fff;" target="_blank">Map and Directions</a></p> 173</div><div class="col-lg-4 col-md-12 col-sm-12 text-center"><p style="text-align:center"><a href="https://www.facebook.com/Conant-Public-Library-521650288292126" name="Link to Library's Facebook account" target="_blank"><img src="/resources/images/gplfacebook (2).jpg"></a></p> 174 175<p style="text-align: center;">Copyright Conant Public Library - 2023/2025</p> 176</div> 177 </div>
178 </div> 179 </div> 180 </div> 181 </footer> 182 183 184
184<script type="text/javascript"> 185 186 function ensureAccessibility() { 187 // Select all elements with aria-hidden="true" 188 const hiddenElements = document.querySelectorAll('[aria-hidden="true"]'); 189 190 hiddenElements.forEach(element => { 191 if (element) { 192 // Remove tabindex if present 193 element.removeAttribute('tabindex'); 194 195 // Find and disable focusable elements inside aria-hidden elements 196 const focusableElements = element.querySelectorAll( 197 'a, button, input, textarea, select, [tabindex]' 198 ); 199 200 focusableElements.forEach(focusable => { 201 focusable.setAttribute('tabindex', '-1'); 202 focusable.setAttribute('aria-hidden', 'true'); 203 }); 204 } 205 }); 206} 207 208function ensureButtonsHaveLabels() { 209 // Select slick-carousel arrow buttons 210 const buttons = document.querySelectorAll('.slick-carousel-arrows'); 211 212 buttons.forEach((button, index) => { 213 if (!button.textContent.trim()) { 214 // Add meaningful aria-labels for accessibility 215 button.setAttribute('aria-label', index === 0 ? 'Previous Slide' : 'Next Slide'); 216 } 217 }); 218} 219 220function ensureImagesHaveAlt() { 221 // Select all img elements 222 const images = document.querySelectorAll('img'); 223 224 images.forEach(img => { 225 if (!img.hasAttribute('alt') || !img.getAttribute('alt').trim()) { 226 // Extract the file name from the src attribute (without the path) 227 const src = img.getAttribute('src') || ''; 228 const fileName = src.substring(src.lastIndexOf('/') + 1) || 'image'; 229 230 // Set the alt attribute to the file name (without the extension) 231 const altText = fileName.split('.').slice(0, -1).join('.') || 'image'; 232 img.setAttribute('alt', altText); 233 } 234 }); 235} 236 237function addNewTabAccessibility() { 238 document.querySelectorAll('a[target="_blank"]').forEach(link => { 239 // Check if the link is inside .MuiScopedCssBaseline-root.jss1 240 if (link.closest('.MuiScopedCssBaseline-root.jss1')) { 241 // Add aria-label if not already present 242 if (!link.hasAttribute('aria-label')) { 243 const linkText = link.textContent.trim() || 'this link'; 244 link.setAttribute('aria-label', `Opens in a new tab: ${linkText}`); 245 } 246 } else { 247 // For other links, add sr-only span if not already present 248 if (!link.querySelector('.sr-only')) { 249 const srText = document.createElement('span'); 250 srText.className = 'sr-only'; 251 srText.textContent = '(opens in a new tab)'; 252 link.appendChild(srText); 253 } 254 } 255 }); 256} 257 258function ensureRemoveTabIndexNav(){ 259 const navElement = document.querySelector('nav[role="navigation"][aria-label="site"]'); 260 if (navElement) { 261 navElement.querySelectorAll('[tabindex]').forEach((element) => { 262 element.removeAttribute('tabindex'); 263 }); 264 } 265} 266// Run the functions when the DOM is fully loaded 267document.addEventListener('DOMContentLoaded', () => { 268 ensureAccessibility(); 269 addNewTabAccessibility(); 270 ensureButtonsHaveLabels(); 271 ensureImagesHaveAlt(); 272 273 ensureRemoveTabIndexNav(); 274}); 275 276// Use MutationObserver to apply logic when elements are added/modified 277const observer = new MutationObserver(() => { 278 ensureAccessibility(); 279 addNewTabAccessibility(); 280 ensureButtonsHaveLabels(); 281 ensureImagesHaveAlt(); 282 283 ensureRemoveTabIndexNav(); 284}); 285 286// Start observing the body for changes (dynamic content updates) 287observer.observe(document.body, { childList: true, subtree: true }); 288 289 </script>
289 290
290<script type="text/javascript"> 291 function applyAccessibilityFeatures() { 292 // 1. Custom controls have ARIA roles 293 document.querySelectorAll('button, input[type="button"], input[type="submit"]').forEach(control => { 294 if (!control.hasAttribute('role')) { 295 control.setAttribute('role', 'button'); // Adding role based on tag type if it doesn't exist 296 } 297 }); 298 299 // 2. Custom controls have associated labels (for buttons, inputs, etc.) 300 document.querySelectorAll('input, textarea, select').forEach(control => { 301 if (!control.hasAttribute('aria-label')) { 302 const label = control.getAttribute('placeholder') || control.name || 'Interactive element'; 303 control.setAttribute('aria-label', label); // Add aria-label only if it's not present 304 } 305 }); 306 307 // 3. User focus is not accidentally trapped (for modal-like dialogs) 308 document.addEventListener('keydown', (event) => { 309 if (event.key === 'Tab') { 310 let focusableElements = document.querySelectorAll('a, button, input, textarea, select, [tabindex]:not([tabindex="-1"])'); 311 let firstElement = focusableElements[0]; 312 let lastElement = focusableElements[focusableElements.length - 1]; 313 314 if (event.shiftKey) { // Shift + Tab 315 if (document.activeElement === firstElement) { 316 lastElement.focus(); 317 event.preventDefault(); 318 } 319 } else { // Tab 320 if (document.activeElement === lastElement) { 321 firstElement.focus(); 322 event.preventDefault(); 323 } 324 } 325 } 326 }); 327 328 // 4. Interactive controls are keyboard focusable 329 document.querySelectorAll('a, button, input, textarea, select').forEach(el => { 330 if (!el.hasAttribute('tabindex')) { 331 el.setAttribute('tabindex', '0'); // Make interactive elements focusable only if tabindex is not present 332 } 333 }); 334 335 // 5. Interactive elements indicate their purpose and state 336 document.querySelectorAll('button, input[type="checkbox"], input[type="radio"]').forEach(el => { 337 if (!el.hasAttribute('aria-pressed')) { 338 el.setAttribute('aria-pressed', el.checked || el.classList.contains('active') ? 'true' : 'false'); 339 } 340 }); 341 342 // 6. The page has a logical tab order 343 const focusableElements = document.querySelectorAll('a, button, input, textarea, select'); 344 focusableElements.forEach((el, index) => { 345 if (!el.hasAttribute('tabindex')) { 346 el.setAttribute('tabindex', index + 1); // Assign tabindex only if it's not present 347 } 348 }); 349 350 // 7. The user's focus is directed to new content added to the page 351 const newContent = document.querySelector('[data-new-content="true"]'); 352 if (newContent && !newContent.hasAttribute('aria-live')) { 353 newContent.focus(); // Direct focus to new content 354 newContent.setAttribute('aria-live', 'polite'); // Ensure it's announced only if aria-live isn't already present 355 } 356 357 // 8. Off-screen content is hidden from assistive technology 358 document.querySelectorAll('[hidden], [aria-hidden="true"]').forEach(el => { 359 if (!el.hasAttribute('aria-hidden')) { 360 el.setAttribute('aria-hidden', 'true'); // Hide off-screen content from assistive tech only if aria-hidden isn't already set 361 } 362 }); 363 364 // 9. Use landmark elements to improve navigation 365 const navElement = document.querySelector('nav'); 366 if (navElement && !navElement.hasAttribute('role')) { 367 navElement.setAttribute('role', 'navigation'); 368 } 369 370 const headerElement = document.querySelector('header'); 371 if (headerElement && !headerElement.hasAttribute('role')) { 372 headerElement.setAttribute('role', 'banner'); 373 } 374 375 const mainElement = document.querySelector('main'); 376 if (mainElement && !mainElement.hasAttribute('role')) { 377 mainElement.setAttribute('role', 'main'); 378 } 379 380 const footerElement = document.querySelector('footer'); 381 if (footerElement && !footerElement.hasAttribute('role')) { 382 footerElement.setAttribute('role', 'contentinfo'); 383 } 384 385 // 10. Visual order on the page follows DOM order 386 const parent = document.querySelector('body'); // Assuming body is the main container 387 const elements = Array.from(parent.children).sort((a, b) => { 388 return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1; 389 });
390 elements.forEach(el => parent.appendChild(el)); // Reorder in DOM if necessary 391 } 392 document.addEventListener('DOMContentLoaded', applyAccessibilityFeatures); 393 394 document.addEventListener("DOMContentLoaded", () => { 395 // Function to adjust font sizes for <ul> and <li> elements 396 const adjustFontSizeForListElements = () => { 397 const listElements = document.querySelectorAll("ul, li"); 398 399 listElements.forEach((element) => { 400 const computedFontSize = window.getComputedStyle(element).fontSize; 401 const fontSizePx = parseFloat(computedFontSize); 402 403 // Adjust only if the font size is smaller than 11px 404 if (fontSizePx > 0 && fontSizePx < 11) { 405 element.style.fontSize = "11px"; 406 } 407 }); 408 }; 409 410 // Function to add role="presentation" to specific <table> elements 411 const addPresentationRole = (table) => { 412 const hasBorderZero = table.getAttribute("border") === "0"; 413 const noHeader = !table.querySelector("th"); 414 if (hasBorderZero && noHeader) { 415 table.setAttribute("role", "presentation"); 416 } 417 }; 418 419 // Apply font size adjustments on page load 420 adjustFontSizeForListElements(); 421 422 // Apply role="presentation" to existing tables on page load 423 document.querySelectorAll("table").forEach(addPresentationRole); 424 425 // Observer for dynamically added <ul>, <li>, and <table> elements 426 const dynamicContentObserver = new MutationObserver((mutations) => { 427 mutations.forEach((mutation) => { 428 mutation.addedNodes.forEach((node) => { 429 if (node.nodeName === "TABLE") { 430 addPresentationRole(node); 431 } else if (node.nodeName === "UL" || node.nodeName === "LI") { 432 adjustFontSizeForListElements(); 433 } 434 }); 435 }); 436 }); 437 438 // Observe for dynamically added content 439 dynamicContentObserver.observe(document.body, { childList: true, subtree: true }); 440}); 441 442 443 </script>
443 444 </form> 445</body> 446</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.