Connect with us

Northeast

Obama continues tradition of slow-rolled political endorsements as gubernatorial elections hit fever pitch

Published

on

Obama continues tradition of slow-rolled political endorsements as gubernatorial elections hit fever pitch

NEWYou can now listen to Fox News articles!

Former President Barack Obama officially endorsed both Democrat candidates running in the only pair of gubernatorial elections this cycle, following the tradition of the former president holding his endorsement cards close to his chest in the lead-up to elections.

“Mikie’s integrity, grit and commitment to service are what we need right now in our leaders,” Obama said in a video endorsement ad released Friday by Democratic New Jersey Rep. Mikie Sherrill’s gubernatorial campaign. “Mikie Sherrill is the right choice for your next governor.

“Mikie is a mom who will drive down costs for New Jersey families,” Obama continued in the ad. “As a federal prosecutor and former Navy helicopter pilot, she worked to keep our communities safe.” 

New Jersey and Virginia are the only states holding gubernatorial elections in 2025’s off-season election year, with Sherrill and former U.S. Rep. Abigail Spanberger of Virginia as the only Democrats in the running. 

Advertisement

OBAMA ENDORSES SPANBERGER, ATTACKS REPUBLICANS IN VIRGINIA GOVERNOR’S RACE ADS

Former President Barack Obama continued his tradition of holding official political endorsements close to the vest, endorsing the Democrats running in the Virginia and New Jersey gubernatorial elections.  (Alex Wong/Getty Images)

Obama endorsed Spanberger Thursday in a pair of ads that also took aim at Republicans for “attacking abortion rights.” 

“Virginia’s elections are some of the most important in the country this year. We know Republicans will keep attacking abortion rights and the rights of women. That’s why having the right governor matters, and I’m proud to endorse Abigail Spanberger,” Obama said in an ad endorsing the Virginia Democrat. 

“Republican policies are raising costs on working families so (that) billionaires can get massive tax cuts,” he said in another ad endorsing Spanberger. 

Advertisement

Following Obama’s endorsement of Spanberger, the Republican challenger in the race, current Virginia Lt. Gov. Winsome Earle-Sears’ campaign told Fox Digital Thursday, “Abigail Spanberger is scared, and it shows.”

THE ONLY GOP GUBERNATORIAL CANDIDATES RUNNING IN 2025 ELECTIONS LEAN INTO TRUMP’S MAGA CAMPAIGN TACTICS

“After losing support across Virginia, she’s leaning on liberal elites to try and save her collapsing campaign,” Earle-Sears’ press secretary, Peyton Vogel, said. “This is a desperate play from a candidate who’s run out of support, out of ideas and out of time. Voters see through it, and that’s why Winsome Earle-Sears is surging.” 

New Jersey Republican Jack Ciattarelli’s campaign also blasted the Obama endorsement in a comment to Fox News Digital Friday. 

“If anything underscores the lack of enthusiasm around Mikie Sherrill’s arrogant, out-of-touch campaign, it’s that she thinks that endorsements by Barack Obama and Hillary Clinton actually matter to middle and working-class New Jerseyans who have been kicked in the teeth by eight years of one-party Democrat rule making our state more expensive and less safe,” Ciattarelli campaign strategist Chris Russell told Fox News Digital. “Spoiler alert: They don’t. If anything, it energizes our voters even more.” 

Advertisement

Former Secretary of State Hillary Clinton attended fundraising events for both Democratic gubernatorial candidates in October. 

Rep. Mikie Sherrill, D-N.J., and former Rep. Abigail Spanberger, D-Va., launched gubernatorial bids for their respective states in the 2025 election.  (Tom Williams/CQ Roll Call)

Since leaving the Oval Office, Obama typically has held his endorsement card close to his chest.

He endorsed former Secretary of State Hillary Clinton in June 2016 following months of signaling support for Clinton without formally offering his endorsement.

THE ONLY TWO DEMS RUNNING FOR GOVERNOR IN 2025 ARE FORMER ROOMMATES WITH MIRRORING POLITICAL CAREERS

Advertisement

Obama remained coy during the 2020 election about whom he would endorse, saying he would not back anyone during the primary. As Democratic contenders such as former Indiana Mayor Pete Buttigieg, Sen. Elizabeth Warren of Massachusetts and Vermont Sen. Bernie Sanders dropped out of the race, Obama officially endorsed his former vice president, Joe Biden, after he became the party’s presumptive nominee. 

Obama notably got more involved with the 2020 Biden campaign in its final weeks, holding his first in-person event amid the pandemic in Pennsylvania just days before the election. 

The 44th president called on Democrats to “chill out” during the 2020 primary season and wait to see which candidate would emerge successful in the primary process.  (Spencer Platt/Getty Images)

The 44th president called on Democrats to “chill out” during the 2020 primary season and wait to see which candidate would emerge successful in the primary process. 

“There will be differences, but I want us to make sure that we keep in mind that relative to the ultimate goal, which is to defeat a president and a party that has, I think, taken a sharp turn away from a lot of the core traditions and values and institutional commitments that built this country,” Obama said in 2019 at a Democrat fundraiser in California. “Compared to that goal, the differences we’re having right now are relatively minor.

Advertisement

“Everybody needs to chill out about the candidates,” he added, “but gin up about the prospect of rallying behind whoever emerges from this process.”

OBAMA, PELOSI, OTHER TOP DEMS RESISTED INSTANT HARRIS ENDORSEMENT CITING NEED TO ‘EARN IT,’ ‘HIKING’ EXCUSE

During the unprecedented 2024 election cycle, Obama did not offer a formal, new endorsement of Biden’s re-election run but did join him for campaign events. Biden ultimately dropped out of the race as concerns over his mental acuity and age mounted, with Obama again staying mum for days whether he would endorse then-Vice President Kamala Harris as the party’s nominee. 

Former President Barack Obama speaks with President-elect Donald Trump before the state funeral service for former President Jimmy Carter in Washington Jan. 9, 2025. (Roberto Schmidt/AFP via Getty Images)

Biden dropped out of the race July 21, 2024, and endorsed Harris to run in his place that same day in a separate social media post. Obama and first lady Michelle Obama endorsed Harris in a video message July 26, 2024, as party members and political pundits awaited the Obamas’ support with bated breath.

Advertisement

TRUMP NOT ON BALLOT, BUT PRESIDENT FRONT AND CENTER IN 2025 ELECTIONS

Harris published a memoir, “107 Days,” in September that detailed her short 2024 campaign cycle and noted in her book that Obama did not offer an immediate endorsement, instead advising that she has to “earn” the nomination and consider the “timing” of it. 

“Saddle up! Joe did what I hoped he would do. But you have to earn it,” Obama said when Harris spoke to him, according to the book. “Michelle and I are supportive but not going to put a finger on the scale right now. Let Joe have his moment. Think through timing.” 

 

Obama also endorsed former Virginia Gov. Terry McAuliffe’s failed 2021 re-election campaign at the end of October 2024, as that election began losing ground to Republican Glenn Youngkin as education issues took center stage.

Advertisement

The 2025 gubernatorial elections have teed up the two Democrats as potential leaders of the party if they prove fruitful in their races, following the Democrat Party’s disarray from the losses at the 2024 ballot boxes that handed President Donald Trump a victory. 

Fox News Digital reached out to Obama’s office for additional comment on the gubernatorial endorsements Friday but did not immediately receive a reply. 

Read the full article from Here

Maine

Carbon removal project supports Maine’s blue economy, broader marine health

Published

on

Carbon removal project supports Maine’s blue economy, broader marine health


Oceans absorb roughly 25 to 30 percent of the carbon dioxide (CO2) that is released into the atmosphere. When this CO2 dissolves in seawater, it forms carbonic acid, making the water more acidic and altering its chemistry. Elevated levels of acidity are harmful to marine life like corals, oysters, and certain plankton that rely on calcium carbonate to build shells and skeletons.

“As the oceans absorb more CO2, the chemistry shifts — increasing bicarbonate while reducing carbonate ion availability — which means shellfish have less carbonate to form shells,” explains Kripa Varanasi, professor of mechanical engineering at MIT. “These changes can propagate through marine ecosystems, affecting organism health and, over time, broader food webs.”

Loss of shellfish can lead to water quality decline, coastal erosion, and other ecosystem disruptions, including significant economic consequences for coastal communities. “The U.S. has such an extensive coastline, and shellfish aquaculture is globally valued at roughly $60 billion,” says Varanasi. “With the right innovations, there is a substantial opportunity to expand domestic production.”

“One might think, ‘this [depletion] could happen in 100 years or something,’ but what we’re finding is that they are already affecting hatcheries and coastal systems today,” he adds. “Without intervention, these trends could significantly alter marine ecosystems and the coastal economies that rely on them over time.”

Advertisement

Varanasi and T. Alan Hatton, the Ralph Landau Professor of Chemical Engineering, Post-Tenure, at MIT, have been collaborating for years to develop methods for removing carbon dioxide from seawater and turn acidic water back to alkaline. In recent years, they’ve partnered with researchers at the University of Maine Darling Marine Center to deploy the method in hatcheries.

“The way we farm oysters, we spawn them in special tanks and rear them through about a two-week larval period … until they’re big enough so that they can be transferred out into the river as the water warms up,” explains Bill Mook, founder of Mook Sea Farm. Around 2009, he noticed problems with production of early-stage larvae. “It was a catastrophe. We lost several hundred thousand dollars’ worth of production,” he says.

Ultimately, the problem was identified as the low pH of the water that was being brought in: The water was too acidic. The farm’s initial strategy, a common practice in oyster farming, was to buffer the water by adding sodium bicarbonate. The new approach avoids the use of chemicals or minerals.

“A lot of researchers are studying direct air capture, but very few are working in the ocean-capture space,” explains Hatton. “Our approach is to use electricity, in an electrochemical manner, rather than add chemicals to manipulate the solution pH.”

Advertisement

The method uses reactive electrodes to release protons into seawater that is collected and fed into the cells, driving the release of the dissolved carbon dioxide from the water. The cyclic process acidifies the water to convert dissolved inorganic bicarbonates to molecular carbon dioxide, which is collected as a gas under vacuum. The water is then fed to a second set of cells with a reversed voltage to recover the protons and turn the acidic water back to alkaline before releasing it back to the sea.

Maine’s Damariscotta River Estuary, where Mook farms is located, provides about 70 percent of the state’s oyster crop. Damian Brady, a professor of oceanography based at the University of Maine and key collaborator on the project, says the Damariscotta community has “grown into an oyster-producing powerhouse … [that is] not only part of the economy, but part of the culture.” He adds, “there’s actually a huge amount that we could learn if we couple the engineering at MIT with the aquaculture science here at the University of Maine.”

“The scientific underpinning of our hypothesis was that these bivalve shellfish, including oysters, need calcium carbonate in order to form their shells,” says Simon Rufer PhD ’25, a former student in Varanasi’s lab and now CEO and co-founder of CoFlo Medical. “By alkalizing the water, we actually make it easier for the oysters to form and maintain their shells.”

In trials conducted by the team, results first showed that the approach is biocompatible and doesn’t kill the larvae, and later showed that the oysters treated by MIT’s buffer approach did better than mineral or chemical approaches. Importantly, Hatton also notes, the process creates no waste products. Ocean water goes in, CO2 comes out. This captured CO2 can potentially be used for other applications, including to grow algae to be used as food for shellfish.

Varanasi and Hatton first introduced their approach in 2023. Their most recent paper, “Thermodynamics of Electrochemical Marine Inorganic Carbon Removal,” which was published last year in journal Environmental Science & Technology, outlines the overall thermodynamics of the process and presents a design tool to compare different carbon removal processes. The team received a “plus-up award” from ARPA-E to collaborate with University of Maine and further develop and scale the technology for application in aquaculture environments.

Advertisement

Brady says the project represents another avenue for aquaculture to contribute to climate change mitigation and adaptation. “It pushes a new technology for removing carbon dioxide from ocean environments forward simultaneously,” says Brady. “If they can be coupled, aquaculture and carbon dioxide removal improve each other’s bottom line.”

Through the collaboration, the team is improving the robustness of the cells and learning about their function in real ocean environments. The project aims to scale up the technology, and to have significant impact on climate and the environment, but it includes another big focus.

“It’s also about jobs,” says Varanasi. “It’s about supporting the local economy and coastal communities who rely on aquaculture for their livelihood. We could usher in a whole new resilient blue economy. We think that this is only the beginning. What we have developed can really be scaled.”

Mook says the work is very much an applied science, “[and] because it’s applied science, it means that we benefit hugely from being connected and plugged into academic institutions that are doing research very relevant to our livelihoods. Without science, we don’t have a prayer of continuing this industry.”

Advertisement



Source link

Continue Reading

Massachusetts

20 years later: How Massachusetts health care reform changed access

Published

on

20 years later: How Massachusetts health care reform changed access


This week marks 20 years since Massachusetts passed a landmark health care reform law that reshaped how residents access medical care and helped pave the way for national changes.Signed on April 12, 2006, the Massachusetts health care reform law — often referred to as “Romneycare” — expanded insurance coverage through a combination of Medicaid expansion, subsidized private plans, and an individual mandate requiring most residents to carry insurance. According to the Commonwealth of Massachusetts, the law led to one of the highest insured rates in the country, with coverage now exceeding 97% of residents.Two decades later, doctors say the impact is still being felt, especially when it comes to how patients enter and navigate the health system.Dr. Daniel Chandler, a primary care physician and associate chief medical information officer at Tufts Medical Center, says the law fundamentally changed access to care.“Health insurance really allows people to have a primary care doctor and a medical home,” Chandler said. “And the alternative to that is often the emergency department, which can be very expensive.” With expanded coverage, more residents are now able to see primary care providers, allowing for earlier intervention and preventive care.Chandler says that shift can make a significant difference.“You can get some necessary screening done and preventive care when it’s relatively easy to fix and it’s less expensive,” he said.Despite high coverage rates, affordability remains a top issue for many patients.“Patients complain about cost all the time,” Chandler said, noting that premiums are only part of the financial burden. “Often, there’s a lot of co-pays that can add up if you choose the wrong plan.”For patients, navigating insurance options can be overwhelming, especially during limited enrollment periods.“The topic is incredibly complex,” Chandler said. “If you have resources like family members or friends who are knowledgeable, I always recommend that you ask them.” Doctors warn that financial pressure can lead patients to delay or skip treatment — a decision that can have long-term consequences.“It can be really catastrophic to avoid treatment,” Chandler said. “If a problem is easy to fix early, that can get more difficult and more expensive over time if you don’t fix it early.”To help address those challenges, many health systems — including Tufts Medicine — now offer support services such as social workers and pharmacy teams to help patients find lower-cost medications, financial assistance or other resources.

This week marks 20 years since Massachusetts passed a landmark health care reform law that reshaped how residents access medical care and helped pave the way for national changes.

Signed on April 12, 2006, the Massachusetts health care reform law — often referred to as “Romneycare” — expanded insurance coverage through a combination of Medicaid expansion, subsidized private plans, and an individual mandate requiring most residents to carry insurance. According to the Commonwealth of Massachusetts, the law led to one of the highest insured rates in the country, with coverage now exceeding 97% of residents.

Advertisement

Two decades later, doctors say the impact is still being felt, especially when it comes to how patients enter and navigate the health system.

Dr. Daniel Chandler, a primary care physician and associate chief medical information officer at Tufts Medical Center, says the law fundamentally changed access to care.

“Health insurance really allows people to have a primary care doctor and a medical home,” Chandler said. “And the alternative to that is often the emergency department, which can be very expensive.”

Advertisement

With expanded coverage, more residents are now able to see primary care providers, allowing for earlier intervention and preventive care.

Chandler says that shift can make a significant difference.

“You can get some necessary screening done and preventive care when it’s relatively easy to fix and it’s less expensive,” he said.

Despite high coverage rates, affordability remains a top issue for many patients.

“Patients complain about cost all the time,” Chandler said, noting that premiums are only part of the financial burden. “Often, there’s a lot of co-pays that can add up if you choose the wrong plan.”

Advertisement

For patients, navigating insurance options can be overwhelming, especially during limited enrollment periods.

“The topic is incredibly complex,” Chandler said. “If you have resources like family members or friends who are knowledgeable, I always recommend that you ask them.”

Doctors warn that financial pressure can lead patients to delay or skip treatment — a decision that can have long-term consequences.

“It can be really catastrophic to avoid treatment,” Chandler said. “If a problem is easy to fix early, that can get more difficult and more expensive over time if you don’t fix it early.”

To help address those challenges, many health systems — including Tufts Medicine — now offer support services such as social workers and pharmacy teams to help patients find lower-cost medications, financial assistance or other resources.

Advertisement



Source link

Continue Reading

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

Trending