Connect with us

New Hampshire

NH House follows RFK Jr., approves ending hepatitis B requirement

Published

on

NH House follows RFK Jr., approves ending hepatitis B requirement


The state House voted, 186-168, Feb. 12 to remove hepatitis B from the list of required vaccines in New Hampshire.

Rep. Kelley Potenza, a Rochester Republican and sponsor of House Bill 1719, framed it as an effort to align with the Centers for Disease Control and Prevention, which under new Health Secretary Robert F. Kennedy has moved in a controversial direction on vaccines.

In December, the CDC’s Advisory Committee on Immunization Practices voted to change the federal government’s guidance to not recommend the hepatitis B vaccine at birth for infants unless the mother tested positive for the virus. The decision came months after Kennedy fired every member of the panel and replaced many of them with fellow vaccine skeptics and was condemned by dozens of major medical organizations.

Advertisement

Potenza has in the past argued that aluminum ingredients in the vaccines cause myriad health complications. However, the American Academy of Pediatrics, the U.S. Food and Drug Administration, and the CDC have all previously reported that aluminum is included in vaccines in doses too small to be toxic.

Supporters say the bill targets government overreach

“What (HB 1719) does is make the hep B vaccination a real choice,” Rep. Matt Drew, a Manchester Republican and co-sponsor of the bill, said on the House floor. “Not a government mandate with the force of the state behind it and the lurking threat of being banned from your day care or school if you refuse.”

State law allows for exemptions on religious and medical grounds, though Drew argued these were insufficient.

Democrats say bill harms public health

The bill was passed over Democrats’ opposition, who decried the bill’s potential effects on public health.

Advertisement

Rep. William Palmer, a Cornish Democrat, noted that since the universal hepatitis B vaccine was introduced in 1991, “there’s been a 99% drop in infant infections.” After 1 billion doses administered around the world, he said, it has proven to be “one of the safest and most effective of all vaccines.” Indeed, from 1993 to 2019, there was a 99% drop in infections among children and adolescents, according to a letter from the American Public Health Association and a coalition of health professionals.

“The peer-reviewed data around the world supports this impressive safety profile,” Palmer said. “And we should not be misled by reports that have not been subjected to such vigorous review.”

This bill will be considered by the House Finance Committee before it heads to the Senate.

Vaccine religious exemption bill passes, too

In a 197-163 vote, the House also approved another vaccine related bill, House Bill 1584. The bill would allow parents to receive religious exemptions from vaccines simply by providing any written statement attesting to the religious exemption as opposed to filling out a specific form created by the Department of Health and Human Services, as is the process now.

Additionally, the bill would require that any time the Department of Health and Human Services promotes vaccines, it must write that “medical and religious exemptions are available under New Hampshire law” in “bold, clearly noticeable, starred print on the front or top portion of the material.”

Advertisement

The original version of the bill imposed a fine of up to $1,000 on any department employee or officer who violates this requirement, but the bill was amended before it passed to allow department management to handle disciplinary action.



Source link

New Hampshire

General John Stark Day celebrated in NH

Published

on

General John Stark Day celebrated in NH


General John Stark Day celebrated in New Hampshire

Advertisement

TRAFFIC AND INTERDICT ILLEGAL ACTIVITY MORE EFFICIENTLY. TODAY, THE GRANITE STATE CELEBRATES THE LEGACY OF GENERAL JOHN STARK. THE SECOND MONDAY OF APRIL IS OBSERVED AS GENERAL JOHN STARK DAY. HE WAS A HERO OF THE AMERICAN REVOLUTION AND IS CREDITED WITH WRITING THE WORDS THAT BECAME NEW HAMPSHIRE’S MOTTO. HE WROTE, QUOTE, LIVE FREE OR DIE. DEATH IS NOT THE WORST OF EVILS, WHICH WAS LATER SHORTENED TO LIVE FREE OR DIE. A LOT OF PEOPLE IN OUR COUNTRY, EVERY GENERATION, MEN AND WOMEN WHO HAVE SERVED, ARE WHY WE ARE FREE. IT’S NOT JUST GENERAL STARK. HE SHOWED US THE WAY AND GENERAL WASHINGTON, BUT EVERY GENERATION OF MEN AND WOMEN WHO HAVE SERVED OUR COUNTRY HAVE ENSURED THAT FREEDOM. STARK IS MOST WELL KNOWN FOR SERVICE AT THE BATTLE OF BENNINGT

The Granite State honored the legacy of Gen. John Stark on Monday. Gen. John Stark Day is observed on the second Monday in April. Stark was a hero of the American Revolution and is credited with writing the words that became New Hampshire’s state motto. He wrote “Live Free or Die: Death is not the worst of evils,” later shortened to “Live Free or Die.”>> Download the free WMUR app to get updates on the go

The Granite State honored the legacy of Gen. John Stark on Monday.

Advertisement

Gen. John Stark Day is observed on the second Monday in April.

Stark was a hero of the American Revolution and is credited with writing the words that became New Hampshire’s state motto. He wrote “Live Free or Die: Death is not the worst of evils,” later shortened to “Live Free or Die.”

>> Download the free WMUR app to get updates on the go

Advertisement

“A lot of people in our country, every generation, men and women who have served, are why we are free,” said Gov. Kelly Ayotte. “It’s not just General John Stark. He showed us the way, and General Washington, but every generation of men and women who have served our country have ensured that freedom.”

Stark is known for his service at the Battle of Bennington in Vermont.

He retired in 1810 and died in Manchester in 1822.

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’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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.wmur.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wmur.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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

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



Source link

Advertisement
Continue Reading

New Hampshire

Proposed bills to address New Hampshire’s insect crisis – Valley News

Published

on

Proposed bills to address New Hampshire’s insect crisis – Valley News


The New Hampshire Senate Committee on Energy and Natural Resources heard two ideas to address shrinking insect populations in New Hampshire during a Tuesday hearing.

One measure, House Bill 1431, would direct the state Pesticide Control Board to reclassify a group of pesticides that is particularly harmful to pollinators and wildlife as restricted use, meaning their use would be limited to professional pesticide applicators. The group of pesticides, called neonicotinoids, has been linked to ecosystem-wide effects from insect and bird population declines to cyanobacteria blooms.

Another bill, House Bill 1086, would establish a committee to study the feasibility and possible outcomes of a ban on seeds treated with neonicotinoid pesticides. Seed treatments are common in grain crops, including corn.

Advertisement

Both bills were sponsored by Rep. John MacDonald, R-Wolfeboro.

“We have to do something,” MacDonald said Tuesday. “I’m not trying to take away any powers of the Pesticide Control Board, but nobody’s doing anything. And I don’t know, I can’t figure out why.”

The windshield effect and beyond

Rosemary Malfi, director of conservation policy for the insect conservation nonprofit Xerces Society, said the decline of insects in New Hampshire is evident in the “windshield effect.”

“Do you remember, anyone who drove a car in the ’90s or early 2000s, you actually got bugs on your windshield? I think everyone here probably knows that that doesn’t happen so much anymore. Neonicotinoid insecticides, or ‘neonics,’ are a major contributor to these declines,” she said.

Forty percent of the bumblebee species historically found in New Hampshire are locally extinct or in severe decline, while about 70% of butterfly species are losing numbers, too, Malfi said. Other classes of insects, including aquatic insects, are affected as well.

Advertisement

This ripples out to affect animals higher up the food chain, including fish and birds. Beneath insects on the ecosystem ladder, meanwhile, are the microorganisms that contribute to harmful cyanobacteria blooms; this means that insect decline can allow cyanobacteria to proliferate, potentially worsening those costly problems, said Rep. Peter Bixby, D-Dover.

Learning from neighbors

As proposed, HB 1086 calls for a committee of three representatives and one senator to assess data from Quebec and New York, where bans on neonicotinoid treated seeds are in place already. They could also assess information from other areas with bans, MacDonald said.

The committee would assess whether bans in other regions have affected crop yields. Some speakers on Tuesday said studies show neonicotinoid seeds to be ineffective at increasing yields.

“We’re concerned that our agricultural community is being asked to pay for a product on seeds that isn’t necessarily helping productivity, but is having serious consequences, both to soil ecology and to water ecology,” said Carol Foss, senior adviser for science and policy with NH Audubon.

Nisa Marks, a wildlife biologist and organic farmer from Henniker, N.H., said neonicotinoids were not necessary for successful crops. But some farmers who attended said restrictions could harm them. Sarah Wrocklage, of Tecce Farm in Durham, N.H., said pests would cause losses on her farm if she could not treat them with chemicals.

Advertisement

In her testimony, Wrocklage also touched on another area that the committee would be directed to consider: Whether it would be possible for farmers to switch to untreated seeds at all. Some of the sweetcorn that Tecce Farm plants is only available in treated form, Wrocklage said.

She and another farmer, Chuck Souther of Concord’s Apple Hill Farm, called for more involvement of local farmers and New Hampshire experts, including those from the University of New Hampshire. As proposed, they said, they did not support the bill, feeling it did not adequately take into account the unique circumstances on New Hampshire farms.

“We do need to look at this, but we need to look at it under New Hampshire conditions,” Souther said.

Requiring action

Though conservationists and farmers agreed insect decline was a problem, at the Tuesday hearings, some senators and speakers questioned the necessity of the bills.

Sen. Howard Pearl, R-Loudon, who is vice chair of the Energy and Natural Resources Committee, asked if a study committee was necessary given the associated costs.

Advertisement

MacDonald said it was. The committee called for in HB 1086 would be “targeted, efficient, and time-bound,” he said. It is designed to last through the summer of 2026 and deliver a report in November.

On HB 1431, speakers, including Robert Johnson of the New Hampshire Farm Bureau Association, suggested the task of restricting neonicotinoid use should be left up to the Pesticide Control Board. Johnson said he disagreed with directing the board’s actions through legislation.

But MacDonald said he had been part of conversations and a subcommittee with the Pesticide Control Board regarding neonicotinoids and had seen no action resulting from those meetings.

“This bill provides clarity on whether action is optional or whether it’s required,” he said.

Both bills have been amended from their original form. As introduced, HB 1086 proposed a ban on seed coatings rather than a study committee, while HB 1431 originally proposed more restrictions, including prohibitions on the use of chemicals on state property and on flowering plants. It also originally sought to make the violation of these rules a misdemeanor for individuals and a felony for organizations or companies. But as amended, the bill leaves more elements of the ban in the hands of the Pesticide Control Board.

Advertisement

Rep. Jonah Wheeler, D-Peterborough, said he had favored a stricter version of both bills in committee discussions, but believed the amended legislation would be a step forward nonetheless. The legislation “deals with a really urgent issue that our constituents are begging us to tackle,” he said.

“The more that we as a society find ourselves away from … symbiosis with the environment in which we live, the natural harmony that exists on this planet, then the more we will find ourselves with problems like pest infestations,” he said.



Source link

Advertisement
Continue Reading

New Hampshire

Bomb threat reported at Pelham Post Office, no explosives found

Published

on

Bomb threat reported at Pelham Post Office, no explosives found


Bomb threat reported at Pelham Post Office, no explosives found

Advertisement

WMUR NEWS NINE TONIGHT STARTS RIGHT NOW. WE BEGIN WITH BREAKING NEWS FROM PELHAM, THE PELHAM PLAZA ON BRIDGE STREET IS BACK OPEN TONIGHT. PELHAM POLICE SAY A BOMB WAS REPORTED IN A MAILBOX IN FRONT OF THE POST OFFICE, BUT THERE WA

Advertisement

Bomb threat reported at Pelham Post Office, no explosives found

Updated: 11:07 PM EDT Apr 12, 2026

Editorial Standards

Advertisement
Pelham police investigated a bomb threat Sunday night at the Pelham Post Office. According to officials, police received a report of a bomb in a mailbox in front of the post office around 7:30 p.m. Out of an abundance of caution, all businesses in Pelham Plaza were evacuated and closed. >> Download the free WMUR app to get updates on the go

Pelham police investigated a bomb threat Sunday night at the Pelham Post Office.

According to officials, police received a report of a bomb in a mailbox in front of the post office around 7:30 p.m.

Advertisement

Out of an abundance of caution, all businesses in Pelham Plaza were evacuated and closed.

>> Download the free WMUR app to get updates on the go

New Hampshire State Police and the Nashua Police Department assisted with the investigation.

Advertisement

No explosives were found, and the shopping plaza has since reopened.

The investigation is ongoing. Anyone with information is asked to contact Lt. Adam Thistle at 603-635-2411.

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’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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;
}

Advertisement

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’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

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.wmur.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wmur.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’);
}

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;
}

Advertisement

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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

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



Source link

Advertisement
Continue Reading

Trending