Vermont, the 14th state to join the Union and the leading producer of maple syrup in the United States, isn’t just about vibrant foliage and ski resorts. Burlington and Montpelier are Vermont’s claim to fame, but beyond them lies a collection of tranquil small towns that embody New England charm’s essence without the crowds.
These towns offer a slower pace where time seems to linger a little longer. The historic streets of Woodstock and the rolling landscapes of Stowe offer you a chance to reconnect with nature, indulge in local cuisine, and unwind in a setting that feels untouched by time. Take a look at eight of Vermont’s most laid-back locales, where relaxation is not just an activity but a way of life.
Woodstock
The Village Butcher shop storefront in Woodstock, Vermont, via Miro Vrlik Photography / Shutterstock.com
Woodstock, Vermont, distinct from its New York namesake, is a small town chartered in 1761. It has grown around the principles of preservation and community, set within the scenic Green Mountains. This setting enhances its array of meticulously preserved architectural treasures from the 1800s, visible throughout its historic district. The town’s commitment to maintaining its heritage is palpable at the Billings Farm & Museum, established in 1890. Here, visitors can engage in hands-on activities and explore exhibits illustrating Vermont’s rural past. Similarly, history lovers adore the iconic Middle Covered Bridge that spans the Ottauquechee River, providing stunning photographic opportunities and a tangible connection to the town’s past.
A scenic red farm amidst nature in the town of Woodstock, Vermont.
For those seeking a blend of nature and history, the Marsh-Billings-Rockefeller National Historical Park, the only part of the U.S. National Park system in Vermont besides the Appalachian Trail, offers expansive views and significant historical insights. The park and the Woodstock Town Forest provide ample space for leisurely walks and a chance to enjoy the natural beauty surrounding this quaint town. No matter what you do in Woodstock, there is always connectivity, thanks to the “Wireless Woodstock” project. The project offers free internet throughout the town and blends traditional charm with contemporary conveniences.
Stowe
Downtown Stowe, Vermont, via redtea / iStock.com
Stowe is perfectly situated at the base of Vermont’s highest peak, Mount Mansfield, offering unmatched access to thrilling ski and snowboard experiences. Visitors can ascend via the Gondola SkyRide for panoramic views that stretch across the Green Mountains or enjoy a leisurely meal at the Cliff House Restaurant high above the slopes. For those eager to dive into the rich history of these winter sports, the Vermont Ski and Snowboard Museum presents an impressive collection of artifacts that celebrate decades of alpine pursuits.
A church surrounded by thick forests in Stowe, Vermont.
But Stowe isn’t just about winter, and summer invites adventurers to explore Smugglers’ Notch State Park, a haven of dense forests and tranquil campgrounds ideal for reconnecting with nature. Come autumn, the landscape bursts into vibrant colors, providing a picturesque backdrop for the Von Trapp Brewing Oktoberfest, a celebration of local brews and German culture. This charm extends to many events, such as the Music in the Meadow concert series and the quirky Vermont Pumpkin Chuckin’ Festival, which showcases the community’s spirited culture and hospitality.
Shelburne
View of the restored Ticonderoga steamboat in the town of Shelburne, Vermont. Editorial credit: Wangkun Jia / Shutterstock.com
Shelburne stands out along Lake Champlain’s picturesque shores as an exceptional relaxing stop. Before indulging in the outdoors, many enthusiasts opt for local history instead, palpable through plenty of iconic attractions. One of the top draws is the Shelburne Museum, an extraordinary campus of 39 diverse buildings that house over 150,000 artifacts showcasing American folk art, impressionist paintings, and much more. Notably, the museum includes a fully restored 220-foot steamboat, providing a tangible link to the lake’s steamboat era. Shelburne is also home to Shelburne Farms, a sprawling estate that serves as both a working farm and an educational center. This site features a Queen Anne-style mansion turned inn. It offers visitors a variety of engaging tours and activities, such as the House & Garden Tour and Forest Bathing (shinrin-yoku), which emphasizes a sensory, immersive experience in nature.
After exploring local heritage, take a relaxing walk or engage in more vigorous activities like snowshoeing or cross-country skiing at Shelburne Bay Park, which offers breathtaking lake views and a chance to experience the area’s natural beauty in peace. One can also tee off with friends at the scenic Kwiniaska Golf Course on the eastern end of town.
Advertisement
Waitsfield
Aerial view of Waitsfield in Vermont.
Waitsfield, a quaint town in the scenic Mad River Valley, embraces the tranquility of rural New England. Despite its modest population of around 1,800 residents, Waitsfield boasts a rich array of attractions that cater to both adventure seekers and those looking to unwind. For winter sports enthusiasts, the town is home to the renowned Mad River Glen ski area and Sugarbush Resort, both situated within the majestic Green Mountains, providing some of the best skiing opportunities in the region. The former is a local favorite, with 60 trails of all levels taking advantage of its 2,000-foot vertical drop. Non-skiers will prefer a trip to the Scrag Mountain Town Forest, featuring ample opportunities for hiking, biking, and nature walks.
For those interested in local history and craftsmanship, Waitsfield does not disappoint. The Madsonian Museum of Industrial Design offers insights into the creative minds that have shaped everyday objects, while the town’s historic covered bridges provide a glimpse into Vermont’s storied past. Additionally, Waitsfield’s landmark venues like the Skinner Barn—a beautifully restored 19th-century dairy barn now serving as an event space—and the multifunctional Mad River Barn add a unique cultural and social flavor to the town.
Dorset
The Dorset Union Store in Dorset, Vermont. Image credit jenlo8 via Shutterstock.com
Less than seven miles from Manchester, Dorset is a serene retreat with a backdrop of rolling brooks and lush landscapes. Places like Emerald Lake State Park and the towering Dorset Peak provide outdoor lovers with ample opportunities for hiking, swimming, and enjoying panoramic views of the surrounding landscapes.
The Dovetail Inn in Dorset, Vermont. Editorial credit: jenlo8 / Shutterstock.com
The town’s history as a former marble quarry that contributed to the construction of the New York Public Library and other notable buildings adds a layer of industrial heritage to its rustic charm. It’s home to the historic Wilson House, where William Griffith Wilson co-founded Alcoholics Anonymous, adding a significant cultural and historical dimension to the town. For art enthusiasts, the Marble House Project at the Manley-Lefevre House offers a unique peek into the creative processes of artists who work within the town’s old marble quarries, such as the famed Freedley Quarry. Visitors can end their day by cozying up at local historic inns, such as The Dorset Inn or the Aerie Inn, which offer warm, inviting accommodations.
Grafton
View of the main street in the town of Grafton, Vermont. Editorial credit: Bob LoCicero / Shutterstock.com
Grafton is an idyllic community located in southern Vermont and easily accessible from the I-91 highway. It offers a tranquil environment where the pace slows, and nature takes center stage. Visitors can start their journey at the Riverledge Farm, immersing themselves in the local agricultural lifestyle, or delve into the sweet delights of Plummer’s Sugar House, where maple syrup and candies showcase Vermont’s renowned maple harvesting. On the other hand, a network of natural trails surrounds Grafton and preserves such as the Grafton Town Forest, Beaver Deceivers International, and John Dorand State Forest, making it a haven for hiking, snowshoeing, and enjoying the serene outdoors.
For those interested in learning about the natural world, The Nature Museum exhibits Vermont’s rich biodiversity and hosts the enchanting Fairy House Festival. This annual event captivates both young and old with whimsical creations every September. Additionally, the town’s dedication to celebrating its heritage and natural beauty is evident in the Jud Hartman Gallery, where the “The Woodland Tribes of the Northeast” collection of bronze sculptures offers a profound cultural insight. Before leaving, be sure to visit the Grafton Village Cheese Company, which has artisanal cheeses that provide a taste of local craftsmanship.
Chester
Aerial view of the town of Chester amidst Vermont’s outdoor scenery.
Chester has no shortage of fun activities like fishing, swimming, and leisurely riverside picnics during the warmer months. Chester serves as a gateway to the Green Mountains, providing abundant hiking, biking, and mountain climbing opportunities, making it a year-round destination for outdoor sports enthusiasts. The Chester Town Forest is a great place to start, with a tranquil environment ideal for people of all ages.
The town is not only a haven for nature enthusiasts but also a treasure trove of history, boasting not one but two districts listed on the National Register of Historic Places. The Stone Village Historic District features unique granite houses that hark back to earlier centuries, while Chester Village displays a splendid array of architectural styles, including Victorian, Federal, and Colonial Revival. This rich blend of historical architecture provides a visually stunning backdrop to the town’s vibrant community events, such as the annual Fall Festival in September and the Winter Carnival in February, drawing visitors and locals alike to celebrate the seasons in a truly historic setting.
Peacham
The Congregational Church and a farm during autumn in Peacham, Vermont.
Peacham is celebrated as one of New England’s most photographed towns—a testament to its undeniable charm and quintessential rural beauty. At the heart of this pastoral town, the Peacham Corner Historic District encapsulates its rich heritage with landmarks like the 1806 Congregational Church and 1797 Peacham Academy, adding a historical depth to the scenic vistas that draw visitors year-round. Other sites, such as the 1787 Elkins Tavern and the 1830 Josiah & Lydia Shedd Farmstead, offer a glimpse into the town’s past, making it a compelling destination for history enthusiasts.
Furthermore, Peacham doesn’t just rest on its laurels as a beautiful backdrop; it actively engages locals and tourists with vibrant community events showcasing its lively cultural fabric. From the Fourth of July celebrations to the Peacham Acoustic Music Festival and the colorful Fall Foliage celebration, the town offers a rich tapestry of experiences highlighting the community’s spirit and hospitality.
Opening up a different side of town, the expansive Groton State Forest offers nearly 30,000 acres of lush forests to explore, bike, or paddle. Each visit promises discoveries and serene encounters with nature. After some natural exploration, those looking to recharge their batteries can eat at Peacham Cafe, which offers delightful culinary experiences.
Advertisement
Wrapping Up
Vermont’s laid-back small towns offer a quintessential retreat into the heart of New England, where the landscape is as rich in history as it is in natural beauty. From Woodstock’s historic lanes to Stowe’s peaceful trails, each town presents an opportunity to slow down and savor life’s simpler pleasures. Whether you seek a quiet weekend away or a deeper connection with nature and history, Vermont’s towns promise a refreshing escape from the hustle of everyday life, where each moment is a step back into a slower, more thoughtful way of living.
Tuesday, April 28-Wednesday, April 29 —KILLINGTON— The Killington Grand Resort Hotel & Conference Center will host the 41st Annual Vermont Tourism Summit, bringing together business owners, operators, and industry professionals from across the state for two days focused on collaboration, strategy, and growth within Vermont’s tourism economy.
This week, a bill that would make changes to Vermont’s Act 181 is receiving testimony in the House Committee on Environment. Certain provisions in Act 181 could trigger a permitting process through Vermont’s land use protection law, Act 250. A rule related to road building and some lands identified as “critical natural resource areas” by the state’s land use review board are expected to take effect this year. Last month, legislation passed the Senate and is currently in the House to push those deadlines back by a few years. For Corinth resident Neil Ryan, that not enough. “The group of people that was largely left out of the process: Rural Vermonters are having this imposed upon them with no say,” he said. Ryan and his family have built their own farms for generations. He believes if the provisions take effect, it would be very difficult for future generations to accomplish what he has. “The difficulty of the Act 250 process, the costs associated with the Act 250 process, we wouldn’t have started those farms likely,” he said. However, Ryan said he does support the portion of Act 181 that allows towns to opt into being exempt from the permitting process altogether. This is meant to assist housing development. On Tuesday, regional planning commissions told lawmakers that many towns have opted in. Still, Vermont is not on track for its goal of 40,000 + homes by 2030. “We’re not saying rural housing growth should stop or slow,” Executive Director of the Northwest RPC Catherine Dimitruk said. “Were saying those additional units that we need, we should be doing all we can to encourage and incentivize.”The bill will remain in House environment for the foreseeable future.
MONTPELIER, Vt. —
This week, a bill that would make changes to Vermont’s Act 181 is receiving testimony in the House Committee on Environment.
Certain provisions in Act 181 could trigger a permitting process through Vermont’s land use protection law, Act 250.
Advertisement
A rule related to road building and some lands identified as “critical natural resource areas” by the state’s land use review board are expected to take effect this year.
Last month, legislation passed the Senate and is currently in the House to push those deadlines back by a few years. For Corinth resident Neil Ryan, that not enough.
“The group of people that was largely left out of the process: Rural Vermonters are having this imposed upon them with no say,” he said.
Advertisement
Ryan and his family have built their own farms for generations. He believes if the provisions take effect, it would be very difficult for future generations to accomplish what he has.
“The difficulty of the Act 250 process, the costs associated with the Act 250 process, we wouldn’t have started those farms likely,” he said.
However, Ryan said he does support the portion of Act 181 that allows towns to opt into being exempt from the permitting process altogether. This is meant to assist housing development.
On Tuesday, regional planning commissions told lawmakers that many towns have opted in. Still, Vermont is not on track for its goal of 40,000 + homes by 2030.
“We’re not saying rural housing growth should stop or slow,” Executive Director of the Northwest RPC Catherine Dimitruk said. “Were saying those additional units that we need, we should be doing all we can to encourage and incentivize.”
Advertisement
The bill will remain in House environment for the foreseeable future.
Roads will turn slippery mid-morning through mid-afternoon
Advertisement
Hour-by-hour: See when to expect steady snow Tuesday in Vermont, New York
Roads will turn slippery mid-morning through mid-afternoon
Advertisement
NBC5 First Warning Meteorologist
Advertisement
NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon. Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.Watch the video above to see the timeline for your area.
NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon.
Advertisement
Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.
Watch the video above to see the timeline for your area.
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