/// <summary>
        /// Generates and adds an A11yCriteria object.
        /// </summary>
        /// <param name="ruleResult"></param>
        /// <param name="standardName"> The key that is used to store that particular standard </param>
        /// <returns></returns>
        internal static A11yCriteria GenerateAndAddA11yCriteria(RuleResult ruleResult, string criteriaName)
        {
            A11yCriteria newA11yCriteria = new A11yCriteria(criteriaName, new Message(criteriaName, null, null, null, null, null), null, null, ruleResult.HelpUrl?.Url);

            A11yCriteriaList.Add(criteriaName, newA11yCriteria);
            return(newA11yCriteria);
        }
        /// <summary>
        /// Fetches or adds a standard if doesn't already exist. Standard name is transformed from "[A11yCriteria-4.1.2]" to "A11yCriteria 4.1.2"
        /// </summary>
        /// <param name="ruleResult"> RuleResult </param>
        /// <returns> Array of transformed A11yCriteria keys </returns>
        internal static string[] FetchOrAddStandards(RuleResult ruleResult)
        {
            A11yCriteria standardName = null;
            string       standardKey  = ruleResult.Source?.Replace("[", "").Replace("]", "").Replace("-", " ");

            if (!A11yCriteriaList.TryGetValue(standardKey, out standardName))
            {
                standardName = GenerateAndAddA11yCriteria(ruleResult, standardKey);
            }
            return(new string[] { standardName.standardKey ?? String.Empty });
        }