Release notes

This page lists highlights, bug fixes, and known issues for the latest release of Streamlit. If you're looking for information about nightly releases or experimental features, see Pre-release features.

star

Tip

To upgrade to the latest version of Streamlit, run:

Terminal
pip install --upgrade streamlit

Release date: October 14, 2026

Highlights

Notable Changes

  • 🧭 Apps have a "Skip to main content" link and <main> and <nav> landmarks for keyboard and screen-reader users. Custom CSS selectors like section[data-testid="stMain"] should drop the tag (#17418, #17338, #17416).
  • πŸ§ͺ AppTest supports more elements:
    • at.form and at.form_submit_button let you look up forms by key and click their submit buttons (#17229).
    • at.link_button and at.page_link (#17308).
    • at.progress, at.html, and at.help (#17280).
    • at.pagination can select a page for the next run (#17322).
    • at.audio_input and at.camera_input can stage a recording or photo for the next run (#17346, #17459).
  • 🐍 Streamlit supports Python 3.15 (#17426, #17422).
  • πŸ‘» Due to end of life, Python 3.10 is no longer supported. The minimum supported versions of NumPy, pandas, Pillow, and PyArrow are raised to releases with Python 3.11 wheels (#17315).

Other Changes

  • πŸ“¦ httptools is now an optional dependency. Install streamlit[performance] to keep Uvicorn's faster HTTP parser (#16554).
  • πŸ’Ώ Streamlit no longer requires the toml dependency (#17315, #17342).
  • ⚠ Streamlit logs a startup warning when websockets 17 or later is installed with uvicorn older than 0.52.0, a combination that can break the WebSocket handshake behind proxies that forward non-ASCII headers (#17115, #16030).
  • πŸ› Bug fix: st.switch_page and st.page_link reject Windows network and device paths before resolving them, so untrusted input can't trigger an SMB connection (#17301).
  • πŸ¦‹ Bug fix: A disabled st.download_button with a callable data argument no longer registers a download that can run the callable (#17288).
  • πŸͺ² Bug fix: Apps embedded in an iframe sandboxed without allow-same-origin render instead of staying blank (#17409, #17402).
  • 🐜 Bug fix: A run that is stopped or replaced while waiting for another run's cached value exits promptly instead of holding a thread (#17340).
  • 🐝 Bug fix: Streamlit logs an error at startup when secrets.toml can't be parsed, instead of silently continuing with empty secrets (#17428).
  • 🐞 Bug fix: Checking for a missing st.* attribute with hasattr or getattr no longer imports modules, which could raise a RuntimeError in code that iterates sys.modules (#17311, #17298).
  • πŸ•·οΈ Bug fix: A fragment callback that only calls st.switch_page or st.stop no longer logs a false warning about displaying elements (#17292).
  • πŸͺ³ Bug fix: Keyed containers no longer trigger React key warnings or remount while a rerun is in progress (#17456).
  • πŸͺ° Bug fix: Side-by-side elements line up better: height="stretch" elements in horizontal containers match the tallest element in their row, and vertically aligned st.columns fill the row height (#17392).
  • 🦠 Bug fix: Stretch-height charts fall back to their default height when nothing gives them one, and stretch-height containers and forms grow to fit their content (#17410, #17424).
  • 🦟 Bug fix: st.echarts_chart tooltips use the theme's font weight and round long numbers (#17333).
  • πŸ¦‚ Bug fix: st.pydeck_chart tooltips appear at the cursor instead of above it (#17313, #17309).
  • πŸ¦— Bug fix: Buttons, checkboxes, toggles, and other labels show a hover tooltip only when their text is cut off (#17266, #17264).
  • πŸ•ΈοΈ Bug fix: Muted icon buttons in widgets, such as clear and microphone buttons, share one color treatment and are no longer tinted by a custom theme.grayColor (#17231).
  • 🐌 Bug fix: Screen readers skip Material icons and decorative images, and icon-only controls have accessible names (#17170, #12873).
  • 🦎 Bug fix: The sidebar's expand and collapse buttons report their state with aria-expanded. Custom CSS or scripts that read aria-expanded on the sidebar should use data-collapsed instead (#17293).
  • πŸ¦€ Bug fix: st.date_input and st.datetime_input have a calendar button that keyboard users can reach with Tab and that reports its state to screen readers (#17294, #17296, #17316).
  • πŸ‘½ Bug fix: st.selectbox and st.multiselect let screen readers announce the active option while you type (#17295, #16841).
  • πŸ‘» Bug fix: Type hints for st.connection, st.query_params, st.secrets, and st.session_state match runtime behavior more closely (#17245, #17419, #17460, #17466).
  • πŸ› Bug fix: AppTest layout collections such as at.expander and at.tabs can be looked up by key (#17256).
  • πŸ¦‹ Bug fix: AppTest keeps persist_state="page" widget values and selected tabs across reruns of the same page (#17305, #17249).
  • πŸͺ² Bug fix: AppTest renders imported Custom Components v2, including st.pdf, in every AppTest instance in the same process (#17331, #17216).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.