Kilotest: Violations of heading structure illogical
issue for Fair Vote contact page
Basics
About the page
- URL: https://fairvote.org/get-involved/contact-us/
- Tested 2 days ago on 2026-10-07 at 21:16 by job
261007T2112-oje - Summary of results:
- Rule engines:
- Called: 12
- Were able to test: 12
- Reported any rule violations: 11
- Violations: 409
- Violators: 246
- Issues: 48
- 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: 4
- Violators: 4
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 434
- Tag name:
DIV - Text:
Discover more resources … Proportional ranked choice voting and neighborhood representation
- Start tag:
<div> - XPath:
/html/body /div[2] /div[1] /main[1] /div[2] /div[2] /div[1] - Bounding box: x = 420, y = 568, width = 1080, height = 371
- Reported by ASLint
- Tag name:
Element 443
- Tag name:
DIV - Text:
September 28, 2026 / … Making multi-party democracy work for the United States
- Start tag:
<div class="flex flex-col md:h-full px-5 md:px-0 py-5 md:pr-5"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[2] /div[2] /div[1] /div[2] /div[1] /div[1] /a[1] /div[1] - Bounding box: x = 632, y = 672, width = 316, height = 205
- Reported by ASLint
- Tag name:
Element 436
- Tag name:
H3 - Text:
Discover more resources
- Start tag:
<h3 id="discover-more-resources" class="wp-block-heading lg:mt-6 lg:ml-0 lg:mb-6 lg:mr-0 mt-3 ml-0 mb-3 mr-0"> - XPath:
/html/body /div[2] /div[1] /main[1] /div[2] /div[2] /div[1] /h3[1] - Bounding box: x = 420, y = 612, width = 1080, height = 36
- Reported by HTML CodeSniffer
- Tag name:
Element 565
- 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: