<!-- Accessible Modal Example -->
<div id="modal" role="dialog" aria-labelledby="modal-title" aria-describedby="modal-description" tabindex="-1" aria-hidden="true">
<div class="modal-content">
<button class="close" aria-label="Close modal">×</button>
<h2 id="modal-title">Modal Title</h2>
<p id="modal-description">This is an accessible modal dialog that provides important information.</p>
<button class="confirm">Confirm</button>
<button class="cancel">Cancel</button>
</div>
</div>
<script>
const modal = document.getElementById('modal');
const closeButton = document.querySelector('.close');
function openModal() {
modal.style.display = 'block';
modal.setAttribute('aria-hidden', 'false');
closeButton.focus();
}
function closeModal() {
modal.style.display = 'none';
modal.setAttribute('aria-hidden', 'true');
// Return focus to the element that opened the modal
}
closeButton.addEventListener('click', closeModal);
document.addEventListener('keydown', event => {
if (event.key === 'Escape') {
closeModal();
}
});
</script>
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?