use web_sys::Element;
use crate::{
accessible_name_and_description::{
compute_text_alternative, Compute, ComputeTextAlternativeOptions,
},
util::query_id_refs,
};
pub fn compute_accessible_description(
root: &Element,
options: ComputeTextAlternativeOptions,
) -> String {
let mut description = query_id_refs(root, "aria-describedby")
.iter()
.map(|element| {
compute_text_alternative(
element,
ComputeTextAlternativeOptions {
compute: Some(Compute::Description),
..options.clone()
},
)
})
.collect::<Vec<_>>()
.join(" ");
if description.is_empty() {
if let Some(aria_description) = root.get_attribute("aria-description") {
description = aria_description;
}
}
if description.is_empty() {
if let Some(title) = root.get_attribute("title") {
description = title;
}
}
description
}