Kilotest: Violations of heading structure illogical
issue for Fair Vote page
Basics
About the page
- URL: https://fairvote.org/
- Tested 2 days ago on 2026-10-07 at 21:15 by job
261007T2112-ljo - Summary of results:
- Rule engines:
- Called: 12
- Were able to test: 12
- Reported any rule violations: 11
- Violations: 714
- Violators: 357
- Issues: 53
- Rule engines:
- Download the full technical report (JSON)
About the issue
- Why it matters: Helper misdescribes the page
- Priority: low
- Related WCAG standard: 1.3.1
- Reported by 2 rule engines (ASLint + HTML CodeSniffer)
- Violations: 11
- Violators: 10
Violators
Here are the HTML elements reported to violate rules belonging to the heading structure illogical
issue.
Take me there
links will open the page in a new tab and try to scroll to the element and highlight it. This does not always succeed. You can return here by closing the new tab.
Element 521
- Tag name:
DIV - Text:
OUR REFORMS … LEARN MORE
- Start tag:
<div> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[2] /div[1] /div[1] /div[1] - Bounding box: x = 420, y = 740, width = 1080, height = 432
- Reported by ASLint
- Tag name:
Element 522
- Tag name:
H6 - Text:
OUR REFORMS
- Start tag:
<h6 id="our-reforms" class="wp-block-heading lg:mt-6 lg:ml-0 lg:mb-6 lg:mr-0 mt-3 ml-0 mb-3 mr-0 has-gray-color has-text-color" style="margin-bottom:2rem"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[2] /div[1] /div[1] /div[1] /h6[1] - Bounding box: x = 420, y = 740, width = 1080, height = 16
- Reported by HTML CodeSniffer
- Tag name:
Element 550
- Tag name:
DIV - Text:
RESOURCES … Data on proportional RCV
- Start tag:
<div> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[3] /div[1] /div[1] /div[1] - Bounding box: x = 440, y = 1784, width = 1040, height = 663
- Reported by ASLint
- Tag name:
Element 576
- Tag name:
DIV - Text:
More resources … Data on proportional RCV
- Start tag:
<div class="more-resources pt-4 text-dark-blue bg-newsprint py-5 lg:pt-5 lg:pb-10 px-5 lg:p-5 -ml-5 -mr-5 lg:ml-0 lg:mr-0 mb-5 md:mb-0"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[3] /div[1] /div[1] /div[1] /div[1] /div[2] - Bounding box: x = 440, y = 2300, width = 1040, height = 148
- Reported by ASLint
- Tag name:
Element 577
- Tag name:
H3 - Text:
More resources
- Start tag:
<h3 class="text-primary" style="font-family: var(--wp--preset--font-family--roc-grotesk-condensed) !important; font-size: var(--wp--preset--font-size--h-4) !important; font-style: normal !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: 0.05em !important;"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[3] /div[1] /div[1] /div[1] /div[1] /div[2] /h3[1] - Bounding box: x = 460, y = 2320, width = 1000, height = 32
- Reported by HTML CodeSniffer
- Tag name:
Element 551
- Tag name:
H6 - Text:
RESOURCES
- Start tag:
<h6 id="resources" class="wp-block-heading mt-0 lg:mt-6 lg:ml-0 mb-0 lg:mb-6 lg:mr-0 mt-3 ml-0 mb-3 mr-0 has-gray-color has-text-color" style="margin-bottom:2rem"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[3] /div[1] /div[1] /div[1] /h6[1] - Bounding box: x = 440, y = 1784, width = 1040, height = 16
- Reported by HTML CodeSniffer
- Tag name:
Element 611
- Tag name:
DIV - Text:
NEWS & COMMENTARY … SEE ALL
- Start tag:
<div> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[5] /div[1] /div[1] /div[1] - Bounding box: x = 440, y = 2879, width = 1040, height = 854
- Reported by ASLint
- Tag name:
Element 612
- Tag name:
H6 - Text:
NEWS & COMMENTARY
- Start tag:
<h6 id="news-amp-commentary" class="wp-block-heading mt-0 lg:mt-6 lg:ml-0 mb-0 lg:mb-6 lg:mr-0 mt-3 ml-0 mb-3 mr-0 has-gray-color has-text-color" style="margin-bottom:2rem"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[5] /div[1] /div[1] /div[1] /h6[1] - Bounding box: x = 440, y = 2879, width = 1040, height = 16
- Reported by HTML CodeSniffer
- Tag name:
Element 625
- Tag name:
H4 - Text:
When should we expect results in Alaska’s ranked choice voting elections?
- Start tag:
<h4> - XPath:
/html/body /div[2] /div[1] /main[1] /div[1] /div[5] /div[1] /div[1] /div[1] /section[1] /div[1] /div[1] /a[1] /div[1] /h4[1] - Bounding box: x = 464, y = 3199, width = 299, height = 95
- Reported by HTML CodeSniffer
- Tag name:
Element 826
- Tag name:
DIV - Text:
SIGN UP FOR OUR NEWSLETTER … gform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );var current_page = jQuery('#gform_source_page_number_4').val();jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "4", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_4" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_4"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_4" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 4, current_page ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} );
- Start tag:
<div> - XPath:
/html/body /div[4] /div[1] /div[1] /main[1] /div[1] /div[1] /div[1] /div[2] /div[1] - Bounding box: [not obtained]
- Reported by ASLint
- Tag name: