Glory Bigirimana, 8, of Burlington enjoys a quick ride atop a giant earth ball under the watchful eyes of volunteers at a World Refugee Day celebration at Leddy Park in Burlington on June 21, 2025. Photo by Auditi Guha/VTDigger
BURLINGTON – Shabir Ayoubi and his wife were approved to resettle in the United States more than a year ago, but navigating bureaucracy stalled the process for months and required expensive visits to U.S. embassies in Pakistan. They eventually arrived in Vermont one snowy evening two months ago.
One of the state’s newest residents, Ayoubi, who now lives in Burlington, was among the people celebrating World Refugee Day Saturday at Leddy Park.
“I came here by chance today,” said Ayoubi, 34. He heard about the event and got a ride from a case worker. He didn’t know it was a party and left his wife behind, he said. They don’t have a vehicle.
They are among the more than 600 Afghans resettled across Vermont after fleeing a country taken over by the Taliban, an extremist group, after what became the longest war in U.S. military history.
Advertisement
The U.S.-led invasion began in 2001 in the aftermath of the 9/11 attack and ended in 2021 after U.S. troops withdrew and the Taliban took control of Kabul, the capital city.
Designated by the United Nations, World Refugee Day is celebrated worldwide on June 20 to honor the strength and resilience of people forced to flee their home countries and to shine a light on their rights and needs.
On a sunny summer afternoon, more than 100 refugees enjoyed food, games and camaraderie with their families, resettlement groups, volunteers and allies in a celebration organized by the local chapter of the U.S. Committee for Refugees and Immigrants, a nonprofit international organization that addresses and fights for the needs and rights of refugees and immigrants.
Shabir Ayoubi, an Afghan refugee who came to Vermont two months ago, recounts his journey at a World Refugee Day celebration at Leddy Park in Burlington on June 21. Photo by Auditi Guha/VTDigger
Since 1980, USCRI has helped resettle more than 8,500 refugees in Vermont, many of whom were forced to flee their homes because of war, genocide, torture and repressive regimes. These include survivors of the Rwandan massacre, Congolese fleeing war, Afghans persecuted by the Taliban and Ukrainians whose villages were destroyed, according to a Friday press release from USCRI.
Sonali Samarasinghe, field office director of USCRI in Colchester, said the annual picnic aims to celebrate the contributions of new residents in Vermont, many of who showed up Saturday in colorful clothes and traditional attire.
Advertisement
“You enrich us with your culture, your religion, your skills, your food and your commitment to hard work,” she said in a brief speech Saturday. “In this beautiful diversity that we see here today, we are all unified.”
Between games, chatter, plates of heaped food — donated by community partners such as People’s Kitchen, American Flatbread, Grand Buffet, Lake Champlain Chocolate and Hannaford — families enjoyed a picnic in the sun on the shores of Lake Champlain.
FaReid Munarsyah from The People’s Kitchen serves hot food to Aline Kwizera at a World Refugee Day celebration in Leddy Park, Burlington on June 21. Photo by Auditi Guha/VTDigger
Children laughed while rolling off a large ball representing the earth, kicked around soccer balls, spun hula hoops around their bodies, ducked under a large parachute and lined up for fast-melting ice cream on a warm afternoon.
Under a tent, FaReid Munarsyah of The People’s Kitchen served up generous portions of barbecued meats.
“It’s good,” said Aline Kwizera, who came from Burundi and is a multilingual instructor in the Burlington schools. “I love that people can come, talk and share their experiences like this.”
Advertisement
Ellen Skapski, 76, hugged another woman and said she was her star pupil.
Longtime English tutor Ellen Skapsi (right) speaks with some of her students at a World Refugee Day celebration at Leddy Park, Burlington on June 21. Photo by Auditi Guha/VTDigger
Relocated from Afghanistan in 2024, “best student” Hamida Panjshiri was among former members of the Afghan judiciary who were relocated to the U.S. She lives in Brattleboro, is learning to drive through the Afghan Alliance’s driving program and continues to take weekly English lessons.
“I’m good. I’m happy,” she said. “Because people in Vermont are very kind.”
A French and Spanish interpreter and English tutor with USCRI for more than two decades, Skapski said, “I just love seeing my students, their progress and how much they give to the community.”
While some of the refugees were reluctant to speak about the Trump administration’s roll back of refugee aid, travel and rights, some advocates did not hold back.
Advertisement
“Refugees make Vermont great,” said Tracy Dolan, director of the state refugee office in a brief speech. “We need refugees in Vermont. We need immigrants in Vermont. And we are happy to share our home with you. And no matter what is happening outside of Vermont, no matter what is happening in the country or with the government, we can be together and we can focus on the positive. And we will keep fighting. We will keep fighting for you.”
State Treasurer Mike Pieciak said generations of refugees and immigrants have helped build a stronger nation, from the first Pilgrims fleeing religious persecution in England to his own ancestors to the new refugees who call Vermont home.
“As state treasurer, I spend a lot of time thinking about the future of the Vermont economy,” he said. “As I stand here today with you and enjoy the music, the food and the culture, I can tell you that it’s so clear that refugees do so much more than simply grow our economy. You strengthen our communities all across the state.”
“Refugees so often represent the best of what America means at its core,” he said, thanking the community for leaving behind their hardships and suffering and bringing their strength and resilience to build a life, find community, adjust to a new language and culture – and then having “the strength and the grace” to give back to Vermont with their labor, culture and presence.
Though he is happy to finally be here, to have housing and a job, Ayoubi acknowledged it has been a rough few years for his family, between fleeing Afghanistan and managing the paperwork and delays that stalled their relocation. “It was frustrating,” he said.
Before the Taliban takeover, Ayoubi said he worked in quality control and security for organizations that supported U.S. troops. Barely settled in, Ayoubi is eager to get back to work.
Advertisement
“I am happy to do anything,” he said.
Ayoubi resettled in Burlington in May as part of a partnership between the Vermont Afghan Alliance, USCRI, Central Vermont Refugee Action Network, and No One Left Behind to continue to welcome Afghans fleeing their homes. He has secured a job with a security services company in Burlington, the Alliance confirmed.
In the face of escalating Trump administration cuts to refugee programs and funding, the theme of this year’s celebration – solidarity with refugees – rings hollow for many refugees across the nation and in Vermont. It’s particularly egregious for the Afghans who served the U.S. but now “face significant challenges and unmet promises,” Molly Gray, executive director of the Vermont Afghan Alliance, noted in a Friday press release.
“These Afghan allies risked their lives and the safety of their families to support U.S. missions. In return for their invaluable service, the U.S. Government promised them relocation to the United States and the opportunity to reunite with their families here in Vermont. Unfortunately, almost three years later, many of these promises remain unfulfilled,” the release stated.
One of Vermont’s few mosques is racing against the clock to purchase two new buildings its leaders say will better serve the growing Muslim community around Burlington.
The Islamic Community Center of Vermont, which currently operates out a cramped Winooski building, says it needs to raise $100,000 by April 28 to guarantee ownership of two much larger Burlington properties on Riverside Avenue.
For the approximately 300 Somali families who use the mosque’s services, the change in location would be like “moving from a one-bedroom apartment to a mansion,” center board member Mukhtar Abdullahi told the Burlington Free Press.
Advertisement
The mosque’s current space limits services. It can only run a few small Qur’an reading and recitation classes each day and weekend, resulting in waitlists for some classes.
“Unfortunately, we’ve had to turn people away simply because we don’t have the capacity to accommodate everyone,” Abdullahi said.
The mosque also lacks sufficient space for women and their children, who for instance must share the facility’s single bathroom with men, “which is far from ideal,” Abdullahi said.
Advertisement
The small size is also a safety concern.
“If something was to happen, there’s no quick exit,” he said.
The deadline is built into a purchasing agreement and financing terms from a bank, Abdullahi said. The center has paid an upfront deposit of $30,000, he said, and the remaining balance of the down payment and closings costs is due April 28.
A bigger space would allow the center to offer multiple classes for different demographics, including age and gender, giving families more flexibility. The organization would also be able to expand Qur’an instruction and provide followers with more activities.
Advertisement
Abdullahi especially dreams of one day cultivating a place just for local youth, which the mosque and the greater Burlington area as a whole lacks, he said.
“Regardless of religion, our youth are the future,” Abdullahi said. “We want to make sure we take care of them.”
How Islamic Community Center of Vermont came to be
The center is one of only two state-registered mosques in Vermont, according to Abdullahi. The other is the similarly named Islamic Society of Vermont, based in South Burlington.
The Islamic Society of Vermont formed in 1995. The Islamic Community Center of Vermont followed in 2011. Together, the two mosques serve the Green Mountain State’s 6,200-6,500 Muslim residents.
The main difference between the organizations is who each serves, Abdullahi said.
Advertisement
His center formed 15 years ago in response to a growing number Somali immigrants, many of whom do not speak English or have a car, to the greater Burlington area. The Islamic Society of Vermont’s services are offered primarily in English and its mosque is a long walk from where the majority of Somali families live, Abdullahi said.
Although the Islamic Society of Vermont has done its best to welcome and accommodate Somali attendees, “there was a need for a mosque where they could communicate easily, ask questions and feel fully understood by people who share their background,” Abdullahi said.
“This wasn’t about replacing that but about creating additional support and accessibility for our community,” he said.
The prospective location, which used to be a laundry mat and a car wash, is a 20-30 minute walk from the mosque’s current spot in Winooski.
Advertisement
Despite its small size, the mosque is “the heart of the community,” Abdullahi told the Free Press, adding that many Somali residents “would struggle to live our daily lives without it.”
The center performs marriages and funeral rites. It’s where people go to settle disagreements.
“We teach children how to be good citizens, how to stay away from trouble, how to read the Qur’an,” Abdullahi said. “It’s where we tell stories about back home.”
“It’s a small building that stands for and does more than what the eye sees,” Abdullahi said.
How fundraising is going
Should the religious nonprofit fail to raise enough money, it will forfeit thousands of dollars in already paid fees and must look for a different location, according to Abdullahi.
Advertisement
Despite the tight deadline, Abdullahi told the Free Press he feels confident the group will secure enough donations.
“We already have several committed donations and meetings lined up, and we’re continuing to connect with supporters,” he said. “Our community has always shown up in meaningful ways, and we’re hopeful that, as more people hear about this effort, they’ll contribute financially or support us in other ways as well.”
Donations will pay for the down payment and closing costs, which originally amounted to $300,000, according to Abdullahi. The center has raised $200,000, a significant amount of which came from Vermont’s non-Muslim population. It has a GoFundMe that as of April 14 had raised about $8,300.
“Regardless of where you come from, always, at the end of the day, community depends on each other,” Abdullahi said.
Real estate records show that the owners of the Riverside properties have been trying to sell them, or parts of them, for several years now.
Advertisement
When would the new mosque open to the public?
Should the center succeed in purchasing the two properties, the new mosque will open sometime between fall and the end of the year, Abdullahi said.
“The place needs a lot of renovations to make it a place of worship,” Abdullahi said, but “it’ll be doable.”
Just as before, people of all faiths, or people with no religious affiliation at all, are invited to visit the mosque.
“We don’t care what religion you are,” Abdullahi said. “It’s a place for the community. Anyone’s welcome.”
Advertisement
Megan Stewart is a government accountability reporter for the Burlington Free Press. Contact her at mstewartyounger@gannett.com.
Voters fill out their ballots in Middlebury in Nov. 2024. File photo by Caleb Kenna/VTDigger
RUTLAND CITY — Vermont argued in federal court Tuesday that the Trump administration’s lawsuit demanding the state’s voter roll data should be dismissed because the administration has not provided a sufficient reason for its request.
The Trump administration sued Vermont’s secretary of state, among many other states, last year after she refused the department’s demand to turn over voter data, including voters’ addresses, drivers license numbers and the last four digits of their Social Security numbers.
Following the hearing, Federal Judge Mary Kay Lanthier will issue a ruling to dismiss or move forward with the case.
Secretary of State Sarah Copeland Hanzas said she had grounds to deny the request because Vermont Law barred the state and local government officials from sharing personally identifying voter data with federal agencies.
Advertisement
Copeland Hanzas said in an interview before the hearing that the Trump administration’s requests for states’ unredacted voter rolls undermines public trust in elections and points to broader concerns with privacy rights.
“We don’t want the federal government to have that level of information about individual Vermonters,” Copeland Hanzas said.
The state of Vermont’s lawyer Samuel Stratton, representing Copeland Hanzas, argued the case should be dismissed because the Department of Justice did not provide a factual basis and purpose for the request and therefore does not comply with the Civil Rights Act.
“We are proud to defend Secretary Copeland Hanzas in this case, and we will continue working to protect our elections from federal interference,” the Attorney General Charity Clark wrote in a Tuesday statement.
The Department of Justice attorney Brittany Bennett argued that the federal government has broad authority under the Civil Rights Act to seek voter data in order to determine whether the state of Vermont’s elections are in compliance with federal law.
Advertisement
The hearing comes after judges recently dismissed similar cases in California, Michigan, Oregon and Massachusetts. A federal judge in Massachusetts dismissed the case last week, asserting that the department failed to comply with Title III of the Civil Rights Act of 1960 by not sharing in detail how the department will use voter information.
The Department of Justice has brought similar lawsuits against 30 states for withholding voter rolls, while 12 states have complied or said they would comply with the Justice Department’s request, according to a tracker run by the Brennan Center for Justice.
“We certainly hope and expect that the outcome of ours will be similar to what’s happened with the states that have gone before us,” Copeland Hanzas said. “But if the motion to dismiss isn’t approved, then we will continue to fight, and we will have our day in court.”
Disclosure: VTDigger reporter Greta Solsaa worked in summer 2022 as a paid canvasser for the Vermont Public Interest Research Group, which filed several motions in the case.
The most widespread storm coverage will occur between 2-8 PM Tuesday, April 14
Advertisement
Timeline: When to expect showers & thunderstorms Tuesday in Vermont, New York
The most widespread storm coverage will occur between 2-8 PM Tuesday, April 14
Advertisement
NBC5 First Warning Meteorologist
Advertisement
NBC5 meteorologists expect strong to locally severe thunderstorms Tuesday afternoon into the evening for Vermont and northern New York.Watch the video to see when showers, downpours, and storms are most likely near your town.
BURLINGTON, Vt. —
NBC5 meteorologists expect strong to locally severe thunderstorms Tuesday afternoon into the evening for Vermont and northern New York.
Advertisement
Watch the video to see when showers, downpours, and storms are most likely near your town.
Advertisement
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
Advertisement
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
Advertisement
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
Advertisement
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
Advertisement
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
`;
}
Advertisement
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
Advertisement
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
Advertisement
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex