function headingMatches(node) {
	// Get all valid roles
	let explicitRoles;
	if (node.hasAttribute('role')) {
		explicitRoles = node
			.getAttribute('role')
			.split(/\s+/i)
			.filter(axe.commons.aria.isValidRole);
	}

	// Check valid roles if there are any, otherwise fall back to the inherited role
	if (explicitRoles && explicitRoles.length > 0) {
		return explicitRoles.includes('heading');
	} else {
		return axe.commons.aria.implicitRole(node) === 'heading';
	}
}

export default headingMatches;
