From 99f1befcfaae4c83d822b10dc0fbdd635a5a0cc1 Mon Sep 17 00:00:00 2001
From: Alex Jerabek <38896772+AlexJerabek@users.noreply.github.com>
Date: Fri, 7 Nov 2025 08:51:18 -0800
Subject: [PATCH 1/8] Address Office 2016 and Office 2019 reaching end of
support
---
.markdownlint.json | 1 +
.../add-in-development-best-practices.md | 6 +-
.../browsers-used-by-office-web-add-ins.md | 125 ++----------
...requirements-for-running-office-add-ins.md | 12 +-
docs/design/add-in-commands.md | 2 +-
docs/design/add-in-icons-fresh.md | 4 +-
docs/design/add-in-icons-monoline.md | 4 +-
docs/design/add-in-icons.md | 9 +-
docs/design/task-pane-add-ins.md | 19 +-
docs/develop/add-ins-with-angular2.md | 16 +-
...ure-your-add-in-to-use-a-shared-runtime.md | 7 +-
.../create-sso-office-add-ins-aspnet.md | 7 +-
.../create-sso-office-add-ins-nodejs.md | 7 +-
.../debug-office-add-ins-in-visual-studio.md | 31 +--
docs/develop/dialog-handle-errors-events.md | 2 +-
...ested-app-authentication-in-your-add-in.md | 4 +-
...ipt-api-for-office-library-from-its-cdn.md | 2 +-
...fice-hosts-and-api-requirements-unified.md | 2 +-
...ecify-office-hosts-and-api-requirements.md | 2 +-
docs/develop/support-ie-11.md | 182 ------------------
docs/develop/xml-manifest-overview.md | 13 +-
docs/develop/yeoman-generator-overview.md | 4 +-
docs/excel/custom-functions-debugging.md | 3 +-
docs/images/choose-target-to-debug.png | Bin 34287 -> 0 bytes
...tools-with-add-in-and-dialog-processes.png | Bin 52928 -> 0 bytes
.../edge-devtools-with-add-in-process.png | Bin 30753 -> 0 bytes
docs/images/open-file-in-edge-devtools.png | Bin 138692 -> 0 bytes
docs/includes/browser-security-updates.md | 2 +-
docs/includes/console-tool-note.md | 2 +-
docs/includes/dev-kit-troubleshooting.md | 2 -
docs/includes/excel-api-models.md | 2 +-
docs/includes/excel-custom-functions-note.md | 2 +-
docs/includes/identify-webview-in-ui.md | 1 -
...tall-office-that-uses-legacy-edge-or-ie.md | 44 -----
.../quickstart-troubleshooting-common.md | 2 -
docs/includes/shared-runtime-note.md | 2 +-
docs/includes/use-legacy-edge-or-ie.md | 38 ----
docs/outlook/debug-ui-less.md | 8 +-
docs/outlook/one-outlook.md | 2 +-
docs/overview/explore-with-script-lab.md | 5 +-
docs/quickstarts/fluent-react-quickstart.md | 8 +-
docs/quickstarts/word-quickstart-vs.md | 4 +-
.../javascript-api-for-office-error-codes.md | 2 +-
.../window-objects-unsupported-in-add-ins.md | 4 +-
docs/resources/resources-glossary.md | 2 +-
.../testing/attach-debugger-from-task-pane.md | 10 +-
docs/testing/clear-cache.md | 2 -
.../testing/debug-add-ins-in-office-online.md | 4 +-
docs/testing/debug-add-ins-overview.md | 11 +-
...ug-add-ins-using-devtools-edge-chromium.md | 13 +-
...ebug-add-ins-using-devtools-edge-legacy.md | 74 -------
.../debug-add-ins-using-f12-tools-ie.md | 102 ----------
.../debug-desktop-using-edge-chromium.md | 7 +-
docs/testing/debug-initialize-onready.md | 10 +-
docs/testing/ie-11-testing.md | 58 ------
docs/testing/runtime-logging.md | 9 +-
docs/testing/runtimes.md | 6 +-
.../sideload-office-add-ins-for-testing.md | 5 +-
docs/testing/test-debug-office-add-ins.md | 6 +-
.../troubleshoot-development-errors.md | 2 +-
docs/testing/troubleshoot-manifest.md | 2 -
docs/toc.yml | 8 -
docs/tutorials/excel-tutorial.md | 5 +-
docs/tutorials/word-tutorial.md | 8 +-
64 files changed, 87 insertions(+), 851 deletions(-)
delete mode 100644 docs/develop/support-ie-11.md
delete mode 100644 docs/images/choose-target-to-debug.png
delete mode 100644 docs/images/edge-devtools-with-add-in-and-dialog-processes.png
delete mode 100644 docs/images/edge-devtools-with-add-in-process.png
delete mode 100644 docs/images/open-file-in-edge-devtools.png
delete mode 100644 docs/includes/identify-webview-in-ui.md
delete mode 100644 docs/includes/install-office-that-uses-legacy-edge-or-ie.md
delete mode 100644 docs/includes/use-legacy-edge-or-ie.md
delete mode 100644 docs/testing/debug-add-ins-using-devtools-edge-legacy.md
delete mode 100644 docs/testing/debug-add-ins-using-f12-tools-ie.md
delete mode 100644 docs/testing/ie-11-testing.md
diff --git a/.markdownlint.json b/.markdownlint.json
index 47a6050709..ac8efbd8e7 100644
--- a/.markdownlint.json
+++ b/.markdownlint.json
@@ -1,4 +1,5 @@
{
+ "MD013": false,
"MD025": false,
"MD033": {
"allowed_elements": ["kbd"]
diff --git a/docs/concepts/add-in-development-best-practices.md b/docs/concepts/add-in-development-best-practices.md
index 0674c288e7..4d82fe8d91 100644
--- a/docs/concepts/add-in-development-best-practices.md
+++ b/docs/concepts/add-in-development-best-practices.md
@@ -2,7 +2,7 @@
title: Best practices for developing Office Add-ins
description: Apply the best practices when developing Office Add-ins.
ms.topic: best-practice
-ms.date: 07/28/2025
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -153,10 +153,6 @@ Ready to share your add-in with the world? Here's how to get started.
> [!IMPORTANT]
> [!INCLUDE [Microsoft Marketplace enterprise info](../includes/appsource-enterprise.md)]
-## Support older Microsoft webviews and Office versions (recommended but not required)
-
-See [Support older Microsoft webviews and Office versions](../develop/support-ie-11.md).
-
## See also
- [Office Add-ins platform overview](../overview/office-add-ins.md)
diff --git a/docs/concepts/browsers-used-by-office-web-add-ins.md b/docs/concepts/browsers-used-by-office-web-add-ins.md
index 16e6563a6e..4923c281b2 100644
--- a/docs/concepts/browsers-used-by-office-web-add-ins.md
+++ b/docs/concepts/browsers-used-by-office-web-add-ins.md
@@ -2,138 +2,40 @@
title: Browsers and webview controls used by Office Add-ins
description: Specifies how the operating system and Office version determine what webview is used by Office Add-ins.
ms.topic: concept-article
-ms.date: 10/17/2024
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
# Browsers and webview controls used by Office Add-ins
-Office Add-ins are web applications that are displayed using iframes when running in Office on the web. In Office for desktop and mobile clients, Office Add-ins use an embedded browser control (also known as a webview). Add-ins also need a JavaScript engine to run the JavaScript. Both the embedded browser and the engine are supplied by a browser installed on the user's computer. In this article, "webview" refers to the combination of a webview control and a JavaScript engine.
+Office Add-ins are web applications that are displayed using iframes when running in Office on the web. In Office for desktop and mobile clients, Office Add-ins use an embedded browser control (also known as a webview). Add-ins also need a JavaScript engine to run the JavaScript. Both the embedded browser and the engine are supplied by a browser installed on the user's computer. In this article, "webview" refers to the combination of a webview control and a JavaScript engine. Which webview is used depends on the computer's operating system.
-Which webview is used depends on:
+## Browsers by platform
-- The computer's operating system.
-- Whether the add-in is running in Office on the web, in Office downloaded from a Microsoft 365 subscription, or in perpetual Office 2016 or later.
-- Within the perpetual versions of Office on Windows, whether the add-in is running in the "retail" or "volume-licensed" variation.
-
-> [!IMPORTANT]
-> **Webviews from Internet Explorer and Microsoft Edge Legacy are still used in Office Add-ins**
->
-> Some combinations of platforms and Office versions, including volume-licensed perpetual versions through Office 2019, still use the webview controls that come with Internet Explorer 11 (called "Trident") and Microsoft Edge Legacy (called "EdgeHTML") to host add-ins, as explained in this article. Internet Explorer 11 was disabled in Windows 10 and Windows 11 in February 2023, and the UI for launching it was removed; but it's still installed on those operating systems. So, Trident and other functionality from Internet Explorer can still be called programmatically by Office.
->
-> We recommend (but don't require) that you continue to support these combinations, at least in a minimal way, by providing users of your add-in a graceful failure message when your add-in is launched in one of these webviews. Keep these additional points in mind:
->
-> - Office on the web no longer opens in Internet Explorer or Microsoft Edge Legacy. Consequently, [Microsoft Marketplace](/partner-center/marketplace-offers/submit-to-appsource-via-partner-center) doesn't test add-ins in Office on these web browsers.
-> - Microsoft Marketplace still tests for combinations of platform and Office *desktop* versions that use Trident or EdgeHTML. However, it only issues a warning when the add-in doesn't support these webviews; the add-in isn't rejected by Microsoft Marketplace.
-> - The [Script Lab tool](../overview/explore-with-script-lab.md) no longer supports Trident.
->
-> For more information about supporting Trident or EdgeHTML, including configuring a graceful failure message on your add-in, see [Support older Microsoft webviews and Office versions](../develop/support-ie-11.md).
-
-The following sections specify which browser is used for the various platforms and operating systems.
-
-## Non-Windows platforms
-
-For these platforms, the platform alone determines the browser that's used.
+The following table specifies which browser is used for the various platforms and operating systems.
|OS|Office version|Browser|
|:-----|:-----|:-----|
-|any|Office on the web|The browser in which Office is opened.
(But note that Office on the web will not open in Internet Explorer.
Attempting to do so opens Office on the web in Edge.) |
+|any|Office on the web|The browser in which Office is opened. |
+|Windows|any|Microsoft Edge (Chromium-based) with WebView2*|
|Mac|any|Safari with WKWebView|
|iOS|any|Safari with WKWebView|
|Android|any|Chrome|
+\* WebView2 is installed with Office by default for [supported versions of Office](https://support.microsoft.com/office/818c68bc-d5e5-47e5-b52f-ddf636cf8e16).
+
> [!IMPORTANT]
> [Conditional Access](/azure/active-directory/conditional-access/overview) isn't supported for Office Add-ins on iOS or Android. Those add-ins use the Safari-based WKWebView or the Android-based WebView, not an Edge-based browser control.
-## Windows
-
-An add-in running on Windows might use any of three different webviews:
-
-- **WebView2**, which is provided by Microsoft Edge (Chromium-based).
-- **EdgeHTML**, which is provided by Microsoft Edge Legacy.
-- **Trident+**, which is provided by Internet Explorer 11. The "+" on the end indicates that Office Add-ins use additional functionality from Internet Explorer 11 that isn't built into Trident itself.
-
-### Perpetual versions of Office on Windows
-
-For perpetual versions of Office on Windows, the browser that's used is determined by the Office version, whether the license is retail or volume-licensed, and whether the Edge WebView2 (Chromium-based) is installed. The version of Windows doesn't matter, but note that Office Add-ins aren't supported on versions earlier than Windows 7 and Office 2021 and later aren't supported on versions earlier than Windows 10.
-
-To determine whether Office 2016 or Office 2019 is retail or volume-licensed, use the format of the Office version and build number. (For Office 2021 and later, the distinction between volume-licensed and retail doesn't matter.)
-
-- **Retail**: For both Office 2016 and 2019, the format is `YYMM (xxxxx.xxxxxx)`, ending with two blocks of five digits; for example, `2206 (Build 15330.20264)`.
-- **Volume-licensed**:
- - For Office 2016, the format is `16.0.xxxx.xxxxx`, ending with two blocks of *four* digits; for example, `16.0.5197.1000`.
- - For Office 2019, the format is `1808 (xxxxx.xxxxxx)`, ending with two blocks of *five* digits; for example, `1808 (Build 10388.20027)`. Note that the year and month is always `1808`.
-
-| Office version | Retail vs. Volume-licensed | WebView2 installed? | Browser |
-|:-----|:-----|:-----|:-----|
-| Office 2024 | Doesn't matter | Yes1 | WebView2 (Microsoft Edge2 Chromium-based) |
-| Office 2021 | Doesn't matter | Yes1 | WebView2 (Microsoft Edge2 Chromium-based) |
-| Office 2019 | Retail | Yes1 | WebView2 (Microsoft Edge2 Chromium-based) |
-| Office 2019 | Retail | No | EdgeHTML (Microsoft Edge Legacy)2, 3If Edge isn't installed, Trident+ (Internet Explorer 11) is used. |
-| Office 2019 | Volume-licensed | Doesn't matter | Trident+ (Internet Explorer 11) |
-| Office 2016 | Retail | Yes1 | WebView2 (Microsoft Edge2 Chromium-based) |
-| Office 2016 | Retail | No | EdgeHTML (Microsoft Edge Legacy)2, 3If Edge isn't installed, Trident+ (Internet Explorer 11) is used. |
-| Office 2016 | Volume-licensed | Doesn't matter | Trident+ (Internet Explorer 11) |
-
-1 On Windows versions prior to Windows 11, the WebView2 control must be installed so that Office can embed it. It's installed with perpetual Office 2021 or later; but it isn't automatically installed with Microsoft Edge. If you have an earlier version of perpetual Office, use the instructions for installing the control at [Microsoft Edge WebView2 / Embed web content ... with Microsoft Edge WebView2](https://developer.microsoft.com/microsoft-edge/webview2/).
-
-2 When you use either EdgeHTML or WebView2, the Windows Narrator (sometimes called a "screen reader") reads the `
` tag in the page that opens in the task pane. In Trident+, the Narrator reads the title bar of the task pane, which comes from the add-in name that's specified in the add-in's manifest.
-
-3 If your add-in uses an add-in only manifest and includes the `` element in the manifest or it uses the unified manifest and it includes an "extensions.runtimes.lifetime" property, then it won't use EdgeHTML. If the conditions for using WebView2 are met, then the add-in uses WebView2. Otherwise, it uses Trident+. For more information, see [Runtimes](/javascript/api/manifest/runtimes) and [Activate add-ins with events](../develop/event-based-activation.md).
-
-### Microsoft 365 subscription versions of Office on Windows
-
-For subscription Office on Windows, the browser that's used is determined by the operating system, the Office version, and whether the WebView2 control is installed.
-
-|OS|Office version| WebView2 installed?|Browser|
-|:-----|:-----|:-----|:-----|
-|- Windows 11
- Windows 10
- Windows 8.1
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
| Microsoft 365 ver. >= 16.0.13530.204241| Yes2| WebView2 (Microsoft Edge3 Chromium-based) |
-|- Window 11
- Windows 10 ver. >= 1903
| Microsoft 365 ver. >= 16.0.13530.204241| No |EdgeHTML (Microsoft Edge Legacy)3, 4|
-|- Windows 11
- Windows 10 ver. >= 1903
| Microsoft 365 ver. >= 16.0.11629 *AND* < 16.0.13530.204241| Doesn't matter|EdgeHTML (Microsoft Edge Legacy)3, 4|
-|- Windows 11
- Windows 10 ver. >= 1903
| Microsoft 365 ver. < 16.0.116291| Doesn't matter|Trident+ (Internet Explorer 11)|
-|- Windows 10 ver. < 1903
- Windows 8.1
| Microsoft 365 | No| Trident+ (Internet Explorer 11)|
-|| Microsoft 365| Doesn't matter | Trident+ (Internet Explorer 11)|
-
-1 See the [update history page](/officeupdates/update-history-office365-proplus-by-date) and how to [find your Office client version and update channel](https://support.microsoft.com/office/932788b8-a3ce-44bf-bb09-e334518b8b19) for more details.
-
-2 On Windows versions prior to Windows 11, the WebView2 control must be installed so that Office can embed it. It's installed with Microsoft 365, Version 2101 or later, but it isn't automatically installed with Microsoft Edge. If you have an earlier version of Microsoft 365, use the instructions for installing the control at [Microsoft Edge WebView2 / Embed web content ... with Microsoft Edge WebView2](https://developer.microsoft.com/microsoft-edge/webview2/). On Microsoft 365 builds before 16.0.14326.xxxxx, you must also create the registry key **HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\WEF\Win32WebView2** and set its value to `dword:00000001`.
-
-3 When you use either EdgeHTML or WebView2, the Windows Narrator (sometimes called a "screen reader") reads the `` tag in the page that opens in the task pane. In Trident+, the Narrator reads the title bar of the task pane, which comes from the add-in name that's specified in the add-in's manifest.
-
-4 If your add-in uses an add-in only manifest and includes the `` element in the manifest or it uses the unified manifest and it includes an "extensions.runtimes.lifetime" property, then it won't use EdgeHTML. If the conditions for using WebView2 are met, then the add-in uses WebView2. Otherwise, it uses Trident+. For more information, see [Runtimes](/javascript/api/manifest/runtimes) and [Activate add-ins with events](../develop/event-based-activation.md).
-
-## Working with Trident+ (Internet Explorer 11)
-
-Trident+ doesn't support JavaScript versions later than ES5. If any of your add-in's users have platforms that use Trident+, then to use the syntax and features of ECMAScript 2015 or later, you have two options.
-
-- Write your code in ECMAScript 2015 (also called ES6) or later JavaScript, or in TypeScript, and then compile your code to ES5 JavaScript using a compiler such as [babel](https://babeljs.io/) or [tsc](https://www.typescriptlang.org/index.html).
-- Write in ECMAScript 2015 or later JavaScript, but also load a [polyfill](https://en.wikipedia.org/wiki/Polyfill_(programming)) library such as [core-js](https://github.com/zloirock/core-js) that enables IE to run your code.
-
-For more information about these options, see [Support older Microsoft webviews and Office versions](../develop/support-ie-11.md).
-
-Also, Trident+ doesn't support some HTML5 features such as media, recording, and location. To learn more, see [Determine the webview the add-in is running in at runtime](../develop/support-ie-11.md#determine-the-webview-the-add-in-is-running-in-at-runtime).
-
-## Troubleshoot EdgeHTML and WebView2 (Microsoft Edge) issues
-
-### Service Workers aren't working
-
-Office Add-ins don't support Service Workers when EdgeHTML is used. They're supported with WebView2.
+## Troubleshoot WebView2 issues
### Scroll bar doesn't appear in task pane
-By default, scroll bars in EdgeHTML and WebView2 are hidden until hovered over. To ensure that the scroll bar is always visible, the CSS styling that applies to the `` element of the pages in the task pane should include the [-ms-overflow-style](https://devdoc.net/web/developer.mozilla.org/en-US/docs/Web/CSS/-ms-overflow-style.html) property and it should be set to `scrollbar`.
-
-### When debugging with the Microsoft Edge DevTools, the add-in crashes or reloads
-
-Setting breakpoints in the [Microsoft Edge DevTools](https://apps.microsoft.com/detail/9mzbfrmz0mnj) for EdgeHTML can cause Office to think that the add-in is hung. It will automatically reload the add-in when this happens. To prevent this, add the following Registry key and value to the development computer: `[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Wef]"AlertInterval"=dword:00000000`.
-
-### When the add-in tries to open, get "ADD-IN ERROR We can't open this add-in from the localhost" error
-
-One known cause is that EdgeHTML requires that localhost be given a loopback exemption on the development computer. Follow the instructions at [Cannot open add-in from localhost](/office/troubleshoot/error-messages/cannot-open-add-in-from-localhost).
+By default, scroll bars in WebView2 are hidden until hovered over. To ensure that the scroll bar is always visible, the CSS styling that applies to the `` element of the pages in the task pane should include the [-ms-overflow-style](https://devdoc.net/web/developer.mozilla.org/en-US/docs/Web/CSS/-ms-overflow-style.html) property and it should be set to `scrollbar`.
### Get errors trying to download a PDF file
-Directly downloading blobs as PDF files in an add-in isn't supported with EdgeHTML or WebView2. The workaround is to create a simple web application that downloads blobs as PDF files. In your add-in, call the `Office.context.ui.openBrowserWindow(url)` method and pass the URL of the web application. This will open the web application in a browser window outside of Office.
+Directly downloading blobs as PDF files in an add-in isn't supported with WebView2. The workaround is to create a simple web application that downloads blobs as PDF files. In your add-in, call the `Office.context.ui.openBrowserWindow(url)` method and pass the URL of the web application. This will open the web application in a browser window outside of Office.
## WIP-protected documents
@@ -146,8 +48,6 @@ There's an extra step needed for Add-ins to run in a document with [WIP (Windows
- **Min Version**: *
- **Max Version**: *
-If the WIP policy hasn't been added, the add-in defaults to an older runtime. In the sections [Perpetual versions of Office on Windows](#perpetual-versions-of-office-on-windows) and [Microsoft 365 subscription versions of Office on Windows](#microsoft-365-subscription-versions-of-office-on-windows) earlier in this article, substitute **EdgeHTML (Microsoft Edge Legacy)** for **WebView2 (Microsoft Edge Chromium-based)** wherever the latter appears.
-
To determine if a document is WIP-protected, follow these steps.
1. Open the file.
@@ -155,9 +55,6 @@ To determine if a document is WIP-protected, follow these steps.
1. Select **Info**.
1. In the upper section of the **Info** page, just below the file name, a WIP-enabled document will have a briefcase icon followed by **Managed by Work (...)**.
-> [!NOTE]
-> Support for WebView2 in WIP-enabled documents was added with build 16.0.16626.20132. If you're on an older build, your runtime defaults to **EdgeHTML (Microsoft Edge Legacy)**, regardless of policy.
-
## See also
- [Requirements for Running Office Add-ins](requirements-for-running-office-add-ins.md)
diff --git a/docs/concepts/requirements-for-running-office-add-ins.md b/docs/concepts/requirements-for-running-office-add-ins.md
index 29e361c8d3..27614a2141 100644
--- a/docs/concepts/requirements-for-running-office-add-ins.md
+++ b/docs/concepts/requirements-for-running-office-add-ins.md
@@ -1,7 +1,7 @@
---
title: Requirements for running Office Add-ins
description: Learn about the client and server requirements that an end user needs to run Office Add-ins.
-ms.date: 08/13/2025
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -47,13 +47,7 @@ The following software is required for developing an Office Add-in for the suppo
If you have a valid Microsoft 365 subscription and you don't have access to the Office client, you can [download and install the latest version of Office](https://support.microsoft.com/office/4414eaaf-0478-48be-9c42-23adc4716658).
- Microsoft Edge must be installed, but doesn't have to be the default browser. To support Office Add-ins, the Office client that acts as host uses webview components that are part of Microsoft Edge.
-
- > [!NOTE]
- >
- > - Strictly speaking, it's possible to develop add-ins on a machine that has Internet Explorer 11 (IE11) installed, but not Microsoft Edge. However, IE11 is used to run add-ins only on certain older combinations of Windows and Office versions. See [Browsers and webview controls used by Office Add-ins](browsers-used-by-office-web-add-ins.md) for more details. We don't recommend using such old environments as your primary add-in development environment. However, if you're likely to have customers of your add-in that are working in these older combinations, we recommend that you support the Trident webview that's provided by Internet Explorer. For more information, see [Support older Microsoft webviews and Office versions](../develop/support-ie-11.md).
- > - Internet Explorer's Enhanced Security Configuration (ESC) must be turned off for Office Web Add-ins to work. If you are using a Windows Server computer as your client when developing add-ins, note that ESC is turned on by default in Windows Server.
-
-- One of the following as the default browser: Internet Explorer 11, or the latest version of Microsoft Edge, Chrome, Firefox, or Safari (Mac OS).
+- One of the following as the default browser: Microsoft Edge, Chrome, Firefox, or Safari (Mac OS).
- An HTML and JavaScript editor such as [Visual Studio Code](https://code.visualstudio.com/), [Visual Studio and the Microsoft Developer Tools](https://www.visualstudio.com/features/office-tools-vs), or non-Microsoft web development tool.
## Client requirements: OS X desktop
@@ -68,7 +62,7 @@ The following are the minimum client versions of Office on Mac that support Offi
## Client requirements: Browser support for Office web clients and SharePoint
-Any browser, except Internet Explorer, that supports ECMAScript 5.1, HTML5, and CSS3, such as Microsoft Edge, Chrome, Firefox, or Safari (Mac OS).
+Any browser that supports ECMAScript 5.1, HTML5, and CSS3, such as Microsoft Edge, Chrome, Firefox, or Safari (Mac OS).
## Client requirements: Non-Windows smartphone and tablet
diff --git a/docs/design/add-in-commands.md b/docs/design/add-in-commands.md
index 54bf73fca6..7fb95f8168 100644
--- a/docs/design/add-in-commands.md
+++ b/docs/design/add-in-commands.md
@@ -130,7 +130,7 @@ Add-in commands are currently supported on the following platforms, except for l
- Office on the web
- Office on Windows (Version 1604 (Build 6769.2000) or later, connected to a Microsoft 365 subscription)
- Office on Mac (Version 15.33 (17040900) or later, connected to a Microsoft 365 subscription)
-- Perpetual Office 2019 or later on Windows or on Mac
+- Perpetual Office 2021 or later on Windows or on Mac
> [!NOTE]
> For information about support in Outlook, see [Outlook support notes](../develop/create-addin-commands.md#outlook-support-notes).
diff --git a/docs/design/add-in-icons-fresh.md b/docs/design/add-in-icons-fresh.md
index b8a7236be6..43545ae7f5 100644
--- a/docs/design/add-in-icons-fresh.md
+++ b/docs/design/add-in-icons-fresh.md
@@ -1,14 +1,14 @@
---
title: Fresh style icon guidelines for Office Add-ins
description: Guidelines for using Fresh style icons in Office Add-ins.
-ms.date: 08/25/2025
+ms.date: 11/06/2025
ms.topic: best-practice
ms.localizationpriority: medium
---
# Fresh style icon guidelines for Office Add-ins
-Perpetual Office 2016 and later use Microsoft's Fresh style iconography. If you would prefer that your icons match the Monoline style of Microsoft 365, see [Monoline style icon guidelines for Office Add-ins](add-in-icons-monoline.md).
+Older Office clients use Microsoft's Fresh style iconography. If you would prefer that your icons match the Monoline style of Microsoft 365, see [Monoline style icon guidelines for Office Add-ins](add-in-icons-monoline.md).
## Office Fresh visual style
diff --git a/docs/design/add-in-icons-monoline.md b/docs/design/add-in-icons-monoline.md
index 586ed85f6a..4f037fe707 100644
--- a/docs/design/add-in-icons-monoline.md
+++ b/docs/design/add-in-icons-monoline.md
@@ -1,14 +1,14 @@
---
title: Monoline style icon guidelines for Office Add-ins
description: Guidelines for using Monoline style icons in Office Add-ins.
-ms.date: 02/12/2025
+ms.date: 11/06/2025
ms.topic: best-practice
ms.localizationpriority: medium
---
# Monoline style icon guidelines for Office Add-ins
-Monoline style iconography are used in Office apps. If you'd prefer that your icons match the Fresh style of perpetual Office 2016 and later, see [Fresh style icon guidelines for Office Add-ins](add-in-icons-fresh.md).
+Monoline style iconography are used in Office apps. If you'd prefer that your icons match the Fresh style of older Office clients, see [Fresh style icon guidelines for Office Add-ins](add-in-icons-fresh.md).
## Office Monoline visual style
diff --git a/docs/design/add-in-icons.md b/docs/design/add-in-icons.md
index af103752dc..255b5d0269 100644
--- a/docs/design/add-in-icons.md
+++ b/docs/design/add-in-icons.md
@@ -1,7 +1,7 @@
---
title: Icon guidelines for Office Add-ins
description: Get an overview of how to design icons and the Fresh and Monoline design styles for add-in commands.
-ms.date: 11/03/2025
+ms.date: 11/06/2025
ms.topic: overview
ms.localizationpriority: medium
---
@@ -11,7 +11,7 @@ ms.localizationpriority: medium
Icons are the visual representation of a behavior or concept. They are often used to add meaning to controls and commands. Visuals, either realistic or symbolic, enable the user to navigate the UI the same way signs help users navigate their environment. They should be simple, clear, and contain only the necessary details to enable customers to quickly parse what action will occur when they choose a control.
> [!NOTE]
-> This article about designing icons for ribbon buttons. For guidance about icons that represent the add-in in the app acquisition and managment UIs of Microsoft 365 applications, see [Design icons for add-in acquisisiton and management](microsoft-365-extension-management-icons.md).
+> This article about designing icons for ribbon buttons. For guidance about icons that represent the add-in in the app acquisition and management UIs of Microsoft 365 applications, see [Design icons for add-in acquisition and management](microsoft-365-extension-management-icons.md).
Office app ribbon interfaces have a standard visual style. This ensures consistency and familiarity across Office apps. The guidelines will help you design a set of PNG assets for your solution that fit in as a natural part of Office.
@@ -22,10 +22,7 @@ Many HTML containers contain controls with iconography. Use Fabric Core’s cust
[Add-in commands](add-in-commands.md) add buttons, text, and icons to the Office UI. Your add-in command buttons should provide meaningful icons and labels that clearly identify the action the user is taking when they use a command. The following articles provide stylistic and production guidelines to help you design icons that integrate seamlessly with Office.
- For the Monoline style of Microsoft 365, see [Monoline style icon guidelines for Office Add-ins](add-in-icons-monoline.md).
-- For the Fresh style of perpetual Office 2016 and later, see [Fresh style icon guidelines for Office Add-ins](add-in-icons-fresh.md).
-
-> [!NOTE]
-> You must choose one style or the other and your add-in will use the same icons whether it's running in Microsoft 365 or perpetual Office.
+- For the Fresh style of older Office clients, see [Fresh style icon guidelines for Office Add-ins](add-in-icons-fresh.md).
## See also
diff --git a/docs/design/task-pane-add-ins.md b/docs/design/task-pane-add-ins.md
index 43daf005c4..3965550532 100644
--- a/docs/design/task-pane-add-ins.md
+++ b/docs/design/task-pane-add-ins.md
@@ -1,7 +1,7 @@
---
title: Task panes in Office Add-ins
description: Task panes give users access to interface controls that run code to modify documents or emails, or display data from a data source.
-ms.date: 08/18/2023
+ms.date: 11/06/2025
ms.topic: overview
ms.localizationpriority: medium
---
@@ -28,18 +28,7 @@ Task panes are interface surfaces that typically appear on the right side of the
The following images show the various task pane sizes with the Office app ribbon at a 1366x768 resolution. For Excel, additional vertical space is required to accommodate the formula bar.
-*Figure 2. Office 2016 desktop task pane sizes*
-
-
-
-- Excel - 320x455 pixels
-- PowerPoint - 320x531 pixels
-- Word - 320x531 pixels
-- Outlook - 348x535 pixels
-
-
-
-*Figure 3. Office task pane sizes*
+*Figure 2. Office task pane sizes*

@@ -54,13 +43,13 @@ Personality menus can obstruct navigational and commanding elements located near
For Windows, the personality menu measures 12x32 pixels, as shown.
-*Figure 4. Personality menu on Windows*
+*Figure 3. Personality menu on Windows*

For Mac, the personality menu measures 26x26 pixels, but floats 8 pixels in from the right and 6 pixels from the top, which increases the space to 34x32 pixels, as shown.
-*Figure 5. Personality menu on Mac*
+*Figure 4. Personality menu on Mac*

diff --git a/docs/develop/add-ins-with-angular2.md b/docs/develop/add-ins-with-angular2.md
index 5b375ea4ed..1781a2d73f 100644
--- a/docs/develop/add-ins-with-angular2.md
+++ b/docs/develop/add-ins-with-angular2.md
@@ -2,7 +2,7 @@
title: Develop Office Add-ins with Angular
description: Use Angular to create an Office Add-in as a single page application.
ms.topic: best-practice
-ms.date: 08/25/2025
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -114,17 +114,3 @@ ng serve --aot
> [!NOTE]
> To learn more about the Angular Ahead-of-Time (AOT) compiler, see the [official guide](https://angular.io/guide/aot-compiler).
-
-## Support the Trident webview control
-
-Older Office clients use the Trident webview control provided by Internet Explorer 11, as described in [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md). *Angular versions 12 and later are incompatible with the Trident webview, so an add-in based on Angular version 12 or later won't run on older Office clients.*
-
-If you need to support older versions of Office, you must use an Angular version between 2 and 11, such as Angular 10. In addition, there are a couple Angular-specific considerations to make if your add-in needs to support these Office versions.
-
-Angular depends on a few `window.history` APIs. These APIs don't work in the Trident webview. When these APIs don't work, your add-in may not work properly, for example, it may load a blank task pane. To mitigate this, Office.js nullifies those APIs. However, if you're dynamically loading Office.js, AngularJS may load before Office.js. In that case, you should disable the `window.history` APIs by adding the following code to your add-in's **index.html** page.
-
-```js
-
-```
-
-If your add-in supports Trident-based browser controls, you'll need to use [hash location strategy](https://angular.io/api/common/HashLocationStrategy) instead of the default [path location strategy](https://angular.io/api/common/PathLocationStrategy). The path location strategy requires HTML5 support which Trident doesn't provide.
diff --git a/docs/develop/configure-your-add-in-to-use-a-shared-runtime.md b/docs/develop/configure-your-add-in-to-use-a-shared-runtime.md
index aed58bb40f..2f035b0b34 100644
--- a/docs/develop/configure-your-add-in-to-use-a-shared-runtime.md
+++ b/docs/develop/configure-your-add-in-to-use-a-shared-runtime.md
@@ -2,7 +2,7 @@
title: Configure your Office Add-in to use a shared runtime
description: Configure your Office Add-in to use a shared runtime to support additional ribbon, task pane, and custom function features.
ms.topic: how-to
-ms.date: 03/12/2025
+ms.date: 11/06/2025
ms.localizationpriority: high
---
@@ -90,9 +90,6 @@ Follow these steps to configure a new or existing project to use a shared runtim
- The `` section must be entered after the `` element in the exact order shown in the following XML.
- > [!NOTE]
- > If your add-in includes the `` element in the manifest (required for a shared runtime) and the conditions for using WebView2 (Microsoft Edge Chromium-based) are met, it uses that control. If the conditions are not met, then it uses the Trident (Internet Explorer 11) webview control regardless of the Windows or Microsoft 365 version. For more information, see [Runtimes](/javascript/api/manifest/runtimes) and [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md).
-
```xml
@@ -235,7 +232,7 @@ Configuring a shared runtime enables the following scenarios.
- Custom functions will have full CORS support.
- Custom functions can call Office.js APIs to read spreadsheet document data.
-For Office on Windows, the shared runtime uses WebView2 (Microsoft Edge Chromium-based) if the conditions for using it are met as explained in [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md). Otherwise, it uses Trident (Internet Explorer 11). Additionally, any buttons that your add-in displays on the ribbon will run in the same shared runtime. The following image shows how custom functions, the ribbon UI, and the task pane code will all run in the same runtime.
+Additionally, any buttons that your add-in displays on the ribbon will run in the same shared runtime. The following image shows how custom functions, the ribbon UI, and the task pane code will all run in the same runtime.

diff --git a/docs/develop/create-sso-office-add-ins-aspnet.md b/docs/develop/create-sso-office-add-ins-aspnet.md
index 430ab01237..1ba1ec23fc 100644
--- a/docs/develop/create-sso-office-add-ins-aspnet.md
+++ b/docs/develop/create-sso-office-add-ins-aspnet.md
@@ -1,7 +1,7 @@
---
title: Create an ASP.NET Office Add-in that uses single sign-on (SSO)
description: A step-by-step guide for how to create (or convert) an Office Add-in with an ASP.NET backend to use single sign-on (SSO).
-ms.date: 05/20/2023
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -88,10 +88,7 @@ Use the following values for placeholders for the subsequent app registration st
### Get the access token and call the application server REST API
-1. In the **Office-Add-in-ASPNETCore-WebAPI** project, open the **wwwroot\js\HomeES6.js** file. It already has code that ensures that Promises are supported, even in the Trident (Internet Explorer 11) webview control, and an `Office.onReady` call to assign a handler to the add-in's only button.
-
- > [!NOTE]
- > As the name suggests, the HomeES6.js uses JavaScript ES6 syntax because using `async` and `await` best shows the essential simplicity of the SSO API. When the localhost server is started, this file is transpiled to ES5 syntax so that the sample will support Trident.
+1. In the **Office-Add-in-ASPNETCore-WebAPI** project, open the **wwwroot\js\HomeES6.js** file. It already has code that ensures that Promises are supported and an `Office.onReady` call to assign a handler to the add-in's only button.
1. In the `getUserFileNames` function, replace `TODO 1` with the following code. About this code, note:
diff --git a/docs/develop/create-sso-office-add-ins-nodejs.md b/docs/develop/create-sso-office-add-ins-nodejs.md
index a7e5ef528e..8464843f17 100644
--- a/docs/develop/create-sso-office-add-ins-nodejs.md
+++ b/docs/develop/create-sso-office-add-ins-nodejs.md
@@ -1,7 +1,7 @@
---
title: Create a Node.js Office Add-in that uses single sign-on
description: Learn how to create a Node.js-based add-in that uses Office Single Sign-on.
-ms.date: 05/20/2023
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -98,10 +98,7 @@ Use the following values for placeholders for the subsequent app registration st
### Call our web server REST API
-1. In your code editor, open the file `public\javascripts\ssoAuthES6.js`. It already has code that ensures that Promises are supported, even in the Trident (Internet Explorer 11) webview control, and an `Office.onReady` call to assign a handler to the add-in's only button.
-
- > [!NOTE]
- > As the name suggests, the ssoAuthES6.js uses JavaScript ES6 syntax because using `async` and `await` best shows the essential simplicity of the SSO API. When the localhost server is started, this file is transpiled to ES5 syntax so that the sample will support Trident.
+1. In your code editor, open the file `public\javascripts\ssoAuthES6.js`. It already has code that ensures that Promises are supported and an `Office.onReady` call to assign a handler to the add-in's only button.
1. In the `getFileNameList` function, replace `TODO 1` with the following code. About this code, note:
diff --git a/docs/develop/debug-office-add-ins-in-visual-studio.md b/docs/develop/debug-office-add-ins-in-visual-studio.md
index a9a31e258f..6201ee7acf 100644
--- a/docs/develop/debug-office-add-ins-in-visual-studio.md
+++ b/docs/develop/debug-office-add-ins-in-visual-studio.md
@@ -1,7 +1,7 @@
---
title: Debug Office Add-ins in Visual Studio
description: Use Visual Studio to debug Office Add-ins in the Office desktop client on Windows.
-ms.date: 02/19/2025
+ms.date: 11/06/2025
ms.localizationpriority: medium
---
@@ -81,12 +81,6 @@ When Visual Studio builds the project, it performs the following tasks:
1. If this is the first add-in project that you have deployed to the local IIS web server, you may be prompted to install a Self-Signed Certificate to the current user's Trusted Root Certificate store. This is required for IIS Express to display the content of your add-in correctly.
-> [!NOTE]
-> If Office uses the Edge Legacy webview control (EdgeHTML) to run add-ins on your Windows computer, Visual Studio may prompt you to add a local network loopback exemption. This is required for the webview control to be able to access the website deployed to the local IIS web server. You can also change this setting anytime in Visual Studio under **Tools** > **Options** > **Office Tools (Web)** > **Web Add-In Debugging**. To find out what webview control is used on your Windows computer, see [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md).
-
-> [!TIP]
-> [!INCLUDE[Identify the webview through the add-in UI](../includes/identify-webview-in-ui.md)]
-
Next, Visual Studio does the following:
1. Modifies the [SourceLocation](/javascript/api/manifest/sourcelocation) element of the add-in only manifest file (that was copied to the `_ProjectName_\bin\Debug\OfficeAppManifests` directory) by replacing the `~remoteAppUrl` token with the fully qualified address of the start page (for example, `https://localhost:44302/Home.html`).
@@ -102,11 +96,6 @@ Next, Visual Studio does the following:
### Debug the add-in
-The best method for debugging an add-in in Visual Studio 2022 depends on whether the add-in is running in WebView2, which is the webview control that is associated with Microsoft Edge (Chromium), or an older webview control. If your computer is using WebView2, see [Use the built-in Visual Studio debugger to debug on the desktop](#use-the-built-in-visual-studio-debugger-to-debug-on-the-desktop). For any other webview control, see [Use the browser developer tools to debug on the desktop](#use-the-browser-developer-tools-to-debug-on-the-desktop). To determine which webview control is being used, see [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md).
-
-> [!TIP]
-> [!INCLUDE[Identify the webview through the add-in UI](../includes/identify-webview-in-ui.md)]
-
#### Use the built-in Visual Studio debugger to debug on the desktop
1. Set breakpoints, as needed, in the source JavaScript or TypeScript files. You can do this either before or after you start the add-in as described in the earlier section [Start the add-in project](#start-the-add-in-project). If setting a breakpoint causes the Internet Information Services (IIS) server to shut down, restart debugging after you have set your breakpoints.
@@ -125,11 +114,7 @@ The best method for debugging an add-in in Visual Studio 2022 depends on whether
1. Launch the add-in in the Office application if it isn't already open. For example, if it's a task pane add-in, it'll have added a button (for example, a **Show Taskpane** button) to the **Home** ribbon or to a custom ribbon tab that's installed with the add-in. Select the button on the ribbon.
-1. Open the [personality menu](../design/task-pane-add-ins.md#personality-menu) and then choose **Attach a debugger**. This action opens the debugging tools for the webview control that Office is using to run add-ins on your Windows computer. You can set breakpoints and step through code as described in one of the following articles:
-
- - [Debug add-ins using developer tools for Internet Explorer](../testing/debug-add-ins-using-f12-tools-ie.md)
- - [Debug add-ins using developer tools for Edge Legacy](../testing/debug-add-ins-using-devtools-edge-legacy.md)
- - [Debug add-ins using developer tools in Microsoft Edge (Chromium-based)](../testing/debug-add-ins-using-devtools-edge-chromium.md)
+1. Open the [personality menu](../design/task-pane-add-ins.md#personality-menu) and then choose **Attach a debugger**. This action opens the debugging tools for the webview control that Office is using to run add-ins on your Windows computer. You can set breakpoints and step through code as described in the article [Debug add-ins using developer tools in Microsoft Edge (Chromium-based)](../testing/debug-add-ins-using-devtools-edge-chromium.md).
1. To make changes to your code, first stop the debugging session in Visual Studio and close the Office application. Make your changes, and start a new debugging session.
@@ -189,16 +174,11 @@ Next, Visual Studio does the following:
### Debug the add-in on the web
-The best method for debugging an add-in in Visual Studio 2022 depends on whether the add-in is running in WebView2, which is the webview control that is associated with Microsoft Edge (Chromium), or an older webview control. If your computer is using WebView2, see [Use the built-in Visual Studio debugger to debug on the web](#use-the-built-in-visual-studio-debugger-to-debug-on-the-web). For any other webview control, see [Use the browser developer tools to debug on the web](#use-the-browser-developer-tools-to-debug-on-the-web). To determine which webview control is being used, see [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md).
-
-> [!TIP]
-> [!INCLUDE[Identify the webview through the add-in UI](../includes/identify-webview-in-ui.md)]
-
#### Use the built-in Visual Studio debugger to debug on the web
1. Set breakpoints, as needed, in the source JavaScript or TypeScript files. You can do this either before or after you start the add-in as described in the earlier section [Start the add-in project on the web](#start-the-add-in-project-on-the-web).
-1. When the add-in is running, use the add-in's UI to run the code that contains your breakpoints.
+1. When the add-in is running, use the add-in's UI to run the code that contains your breakpoints.
> [!TIP]
>
@@ -215,10 +195,7 @@ The best method for debugging an add-in in Visual Studio 2022 depends on whether

-1. Use the instructions in one of the following articles to set breakpoints and step through code. They each have a link to more detailed guidance.
-
- - [Debug add-ins using developer tools for Edge Legacy](../testing/debug-add-ins-using-devtools-edge-legacy.md)
- - [Debug add-ins using developer tools in Microsoft Edge (Chromium-based)](../testing/debug-add-ins-using-devtools-edge-chromium.md)
+1. Set breakpoints and step through code by following the instructions in the article [Debug add-ins using developer tools in Microsoft Edge (Chromium-based)](../testing/debug-add-ins-using-devtools-edge-chromium.md).
> [!TIP]
> To debug code that runs in the `Office.initialize` function or an `Office.onReady` function that runs when the add-in opens, set your breakpoints, and then close and reopen the add-in. For more information about these functions, see [Initialize your Office Add-in](../develop/initialize-add-in.md).
diff --git a/docs/develop/dialog-handle-errors-events.md b/docs/develop/dialog-handle-errors-events.md
index f1a1be4b77..b3fbc44a09 100644
--- a/docs/develop/dialog-handle-errors-events.md
+++ b/docs/develop/dialog-handle-errors-events.md
@@ -30,7 +30,7 @@ In addition to general platform and system errors, four errors are specific to c
|12005|The URL passed to `displayDialogAsync` uses the HTTP protocol. HTTPS is required. (In some versions of Office, the error message text returned with 12005 is the same one returned for 12004.)|
|12007|A dialog box is already opened from this host window. A host window, such as a task pane, can only have one dialog box open at a time.|
|12009|The user chose to ignore the dialog box. This error can occur in Office on the web, where users may choose not to allow an add-in to present a dialog box. For more information, see [Handling pop-up blockers with Office on the web](dialog-best-practices.md#handle-pop-up-blockers-with-office-on-the-web).|
-|12011| The add-in is running in Office on the web and the user's browser configuration is blocking popups. This most commonly happens when the browser is Edge Legacy and the domain of the add-in is in different security zone from the domain that the dialog is trying to open. Another scenario which triggers this error is that the browser is Safari and it's configured to block all popups. Consider responding to this error with a prompt to the user to change their browser configuration or use a different browser.|
+|12011| The add-in is running in Office on the web and the user's browser configuration is blocking popups. This most commonly happens when the browser is Edge Legacy (an older, unsupported webview) and the domain of the add-in is in different security zone from the domain that the dialog is trying to open. Another scenario which triggers this error is that the browser is Safari and it's configured to block all popups. Consider responding to this error with a prompt to the user to change their browser configuration or use a different browser.|
When `displayDialogAsync` is called, it passes an [AsyncResult](/javascript/api/office/office.asyncresult) object to its callback function. When the call is successful, the dialog box is opened, and the `value` property of the `AsyncResult` object is a [Dialog](/javascript/api/office/office.dialog) object. For an example of this, see [Send information from the dialog box to the host page](dialog-api-in-office-add-ins.md#send-information-from-the-dialog-box-to-the-host-page). When the call to `displayDialogAsync` fails, the dialog box isn't created, the `status` property of the `AsyncResult` object is set to `Office.AsyncResultStatus.Failed`, and the `error` property of the object is populated. You should always provide a callback that tests the `status` and responds when it's an error. For an example that reports the error message regardless of its code number, see the following code. (The `showNotification` function, not defined in this article, either displays or logs the error. For an example of how you can implement this function within your add-in, see [Office Add-in Dialog API Example](https://github.com/OfficeDev/Office-Add-in-Dialog-API-Simple-Example).)
diff --git a/docs/develop/enable-nested-app-authentication-in-your-add-in.md b/docs/develop/enable-nested-app-authentication-in-your-add-in.md
index e675f1ea2f..ad2c77e931 100644
--- a/docs/develop/enable-nested-app-authentication-in-your-add-in.md
+++ b/docs/develop/enable-nested-app-authentication-in-your-add-in.md
@@ -1,7 +1,7 @@
---
title: Enable single sign-on in an Office Add-in with nested app authentication
description: Learn how to enable SSO in an Office Add-in with nested app authentication.
-ms.date: 07/14/2025
+ms.date: 11/06/2025
ms.topic: how-to
ms.localizationpriority: high
---
@@ -242,7 +242,6 @@ Use the following code to check if NAA is supported when your add-in loads.
For more information, see the following resources.
-- [Outlook sample: How to fall back and support Internet Explorer 11](https://github.com/OfficeDev/Office-Add-in-samples/blob/main/Samples/auth/Outlook-Add-in-SSO-NAA-IE/README.md)
- [Authenticate and authorize with the Office dialog API](/office/dev/add-ins/develop/auth-with-office-dialog-api).
- [Microsoft identity sample for SPA and JavaScript](https://github.com/Azure-Samples/ms-identity-javascript-tutorial/blob/main/2-Authorization-I/1-call-graph/README.md)
- [Microsoft identity samples for various app types and frameworks](/entra/identity-platform/sample-v2-code?tabs=apptype)
@@ -295,7 +294,6 @@ If you find a security issue with our libraries or services, report the issue to
| [Outlook add-in with SSO using nested app authentication](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/auth/Outlook-Add-in-SSO-NAA) | Shows how to use NAA in an Outlook Add-in to access Microsoft Graph APIs for the signed-in user. |
|[Implement SSO in events in an Outlook add-in using nested app authentication](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/auth/Outlook-Event-SSO-NAA) |Shows how to use NAA and SSO in Outlook add-in events.|
|[Send identity claims to resources using nested app authentication (NAA) and SSO](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/auth/Outlook-Add-in-SSO-NAA-Identity)|Shows how to send the signed-in user's identity claims (such as name, email, or a unique ID) to a resource such as a database. This sample replaces an obsolete pattern for legacy Exchange Online tokens.|
-|[Outlook add-in with SSO using nested app authentication including Internet Explorer fallback](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/auth/Outlook-Add-in-SSO-NAA-IE)|Shows how to implement a fallback authentication strategy when NAA isn't available and the add-in needs to support [Outlook versions that still use Internet Explorer 11](../concepts/browsers-used-by-office-web-add-ins.md).|
## See also
diff --git a/docs/develop/referencing-the-javascript-api-for-office-library-from-its-cdn.md b/docs/develop/referencing-the-javascript-api-for-office-library-from-its-cdn.md
index a6a88570fc..f9d604b63a 100644
--- a/docs/develop/referencing-the-javascript-api-for-office-library-from-its-cdn.md
+++ b/docs/develop/referencing-the-javascript-api-for-office-library-from-its-cdn.md
@@ -23,7 +23,7 @@ This will download and cache the Office JavaScript API files the first time your
## Office.js-specific web API behavior
-Office.js replaces the default [Window.history](https://developer.mozilla.org/docs/Web/API/History) methods of `replaceState` and `pushState` with `null`. This is done to [support older Microsoft webviews and Office versions](support-ie-11.md). If your add-in relies on these methods and doesn't need to run on Office versions that use the Internet Explorer 11 browser control, replace the Office.js library reference with the following workaround.
+Office.js replaces the default [Window.history](https://developer.mozilla.org/docs/Web/API/History) methods of `replaceState` and `pushState` with `null`. If your add-in relies on these methods, replace the Office.js library reference with the following workaround.
```HTML
-
-
-
-
-
-
-
-
-
- This add-in will not run in your version of Office. Please upgrade either to
- perpetual Office 2021 (or later) or to a Microsoft 365 account.
-
-
-
-
-```
-
-> [!IMPORTANT]
-> It's not always a good practice to read the `userAgent` property. Be sure you're familiar with the article, [Browser detection using the user agent](https://developer.mozilla.org/docs/Web/HTTP/Browser_detection_using_the_user_agent), including the recommendations and alternatives to reading `userAgent`. In particular, if you're providing an alternate add-in experience to support the use of Trident, consider using feature detection instead of testing for the user agent. But if you're just providing a notification that the add-in doesn't work in Trident, as in this case, using `userAgent` is appropriate.
->
-> As of July 24th, 2023, the non-English versions of the article are all out-of-date to varying degrees; some are over 12 years out-of-date.
->
-> As of the same date, the text and tables in the section [Which part of the user agent contains the information you are looking for?](https://developer.mozilla.org/docs/Web/HTTP/Browser_detection_using_the_user_agent#which_part_of_the_user_agent_contains_the_information_you_are_looking_for) of the *English* version of the article no longer mention Trident or Internet Explorer 11. In the table for **Browser Name and version**, the row for Internet Explorer 11 was the following:
->
-> |Engine|Must contain|Must not contain|
-> |:---|:---|:---|
-> |Internet Explorer 11|`Trident/7.0; .*rv:xyz`||
->
-> In the table for **Rendering engine**, the row for Trident was the following:
->
-> |Engine|Must contain|Comment|
-> |:---|:---|:---|
-> |Trident|`Trident/xyz`|Internet Explorer places this fragment in the comments section of the User-Agent string.|
-
-## Review webview and Office version support information
-
-For more information on how to support specific webviews and Office versions, select the applicable tab.
-
-# [Trident (Internet Explorer)](#tab/ie)
-
-The JavaScript engine associated with Trident doesn't support JavaScript versions later than ES5. To use more modern versions of JavaScript or to use TypeScript, see [Support for recent versions of JavaScript](#support-for-recent-versions-of-javascript).
-
-> [!IMPORTANT]
-> Trident doesn't support some HTML5 features such as media, recording, and location. If your add-in must support Trident, then you must either design the add-in to avoid these unsupported features or the add-in must detect when Trident is being used and provide an alternate experience that doesn't use the unsupported features. For more information, see [Determine the webview the add-in is running in at runtime](#determine-the-webview-the-add-in-is-running-in-at-runtime).
-
-## Test an add-in on Trident (Internet Explorer)
-
-See [Trident testing](../testing/ie-11-testing.md).
-
-# [EdgeHTML (Microsoft Edge Legacy)](#tab/edge)
-
-## Troubleshoot EdgeHTML issues
-
-If you encounter issues as you develop your add-in to support Microsoft Edge Legacy, see the "EdgeHTML and WebView2 (Microsoft Edge) issues" section of [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md#troubleshoot-edgehtml-and-webview2-microsoft-edge-issues) for guidance.
-
-## Debug an add-in that supports EdgeHTML (Microsoft Edge Legacy)
-
-To debug your add-in that supports EdgeHTML, see [Debug add-ins using developer tools in Microsoft Edge Legacy](../testing/debug-add-ins-using-devtools-edge-legacy.md).
-
----
-
-## Support for recent versions of JavaScript
-
-If you want to use the syntax and features of a version of JavaScript that is newer than the one supported in the webview or runtime that your code is running in, or you want to use TypeScript, you must use a transpiler or a polyfill or both. For example, a transpiler will convert syntax or operators, such as the `=>` operator, that is unknown in ES5, to ES5. A polyfill replaces methods, types, and classes from a newer version of JavaScript into equivalent functionality in an older version.
-
-The following subsections assume that the target JavaScript standard is ES5, but the information applies with other targets too. For example, if your target is ECMAScript 2016, just replace "ES5" with "ECMAScript 2016" (and "post-ES5" with "post-ECMAScript 2016") in these subsections.
-
-### Use a transpiler
-
-You can write your code in either TypeScript or modern JavaScript and then transpile it at build-time into ES5 JavaScript. The resulting ES5 files are what you upload to your add-in's web application.
-
-There are two popular transpilers. Both of them can work with source files that are TypeScript or post-ES5 JavaScript. They also work with React files (.jsx and .tsx).
-
-- [babel](https://babeljs.io/)
-- [tsc](https://www.typescriptlang.org/index.html)
-
-See the documentation for either of them for information about installing and configuring the transpiler in your add-in project. We recommend that you use a task runner, such as [Grunt](https://gruntjs.com/) or [WebPack](https://webpack.js.org/) to automate the transpilation. For a sample add-in that uses tsc, see [Office Add-in Microsoft Graph React](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/auth/Office-Add-in-Microsoft-Graph-React). For a sample that uses babel, see [Offline Storage Add-in](https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/Excel.OfflineStorageAddin).
-
-> [!NOTE]
-> If you're using Visual Studio (not Visual Studio Code), tsc is probably easiest to use. You can install support for it with a nuget package. For more information, see [JavaScript and TypeScript in Visual Studio](/visualstudio/javascript/javascript-in-visual-studio). To use babel with Visual Studio, create a build script or use the Task Runner Explorer in Visual Studio with tools like the [WebPack Task Runner](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebPackTaskRunner) or [NPM Task Runner](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner).
-
-### Use a polyfill
-
-A [polyfill](https://en.wikipedia.org/wiki/Polyfill_(programming)) is earlier-version JavaScript that duplicates functionality from more recent versions of JavaScript. The polyfill works in webviews that don't support the later JavaScript versions. For example, the string method `startsWith` wasn't part of the ES5 version of JavaScript, and so it won't run in Trident (Internet Explorer 11). There are polyfill libraries, written in ES5, that define and implement a `startsWith` method. We recommend the [core-js](https://github.com/zloirock/core-js) polyfill library.
-
-To use a polyfill library, load it like any other JavaScript file or module. For example, you can use a ``), or you can use an `import` statement in a JavaScript file (for example, `import 'core-js';`). When the JavaScript engine sees a method like `startsWith`, it will first look to see if there's a method of that name built into the language. If there is, it will call the native method. If, and only if, the method isn't built-in, the engine will look in all loaded files for it. So, the polyfilled version isn't used in browsers that support the native version.
-
-Importing the entire core-js library will import all core-js features. You can also import only the polyfills that your Office Add-in requires. For instructions about how to do this, see [CommonJS APIs](https://github.com/zloirock/core-js#commonjs-api). The core-js library has most of the polyfills that you need. There are a few exceptions detailed in the [Missing Polyfills](https://github.com/zloirock/core-js#missing-polyfills) section of the core-js documentation. For example, it doesn't support `fetch`, but you can use the [fetch](https://github.com/github/fetch) polyfill.
-
-For a sample add-in that uses core.js, see [Word Add-in Angular2 StyleChecker](https://github.com/OfficeDev/Word-Add-in-Angular2-StyleChecker).
-
-
-## See also
-
-- [Browsers and webview controls used by Office Add-ins](../concepts/browsers-used-by-office-web-add-ins.md)
-- [ECMAScript 6 compatibility table](http://compat-table.github.io/compat-table/es6/)
-- [Can I use... Support tables for HTML5, CSS3, etc](https://caniuse.com/)
diff --git a/docs/develop/xml-manifest-overview.md b/docs/develop/xml-manifest-overview.md
index acdc9f5baf..6ce9f360ed 100644
--- a/docs/develop/xml-manifest-overview.md
+++ b/docs/develop/xml-manifest-overview.md
@@ -2,8 +2,8 @@
title: Office Add-ins with the add-in only manifest
description: Get an overview of the add-in only manifest for Office add-ins and its uses.
ms.topic: overview
-ms.date: 06/24/2025
-ms.localizationpriority: high
+ms.date: 11/06/2025
+ms.localizationpriority: medium
---
# Office Add-ins with the add-in only manifest
@@ -144,11 +144,10 @@ To override this (desktop Office) behavior, add each domain you want to open in
The following table describes browser behavior when your add-in attempts to navigate to a URL outside of the add-in's default domain.
-|Office client|Domain defined in AppDomains?|Browser behavior|
-|---|---|---|
-|All clients|Yes|Link opens in add-in task pane.|
-|Office 2016 on Windows (volume-licensed perpetual)|No|Link opens in Internet Explorer 11.|
-|Other clients|No|Link opens in user's default browser.|
+|Domain defined in AppDomains?|Browser behavior|
+|---|---|
+|Yes|Link opens in add-in task pane.|
+|No|Link opens in user's default browser.|
The following add-in only manifest example hosts its main add-in page in the `https://www.contoso.com` domain as specified in the `` element. It also specifies the `https://www.northwindtraders.com` domain in an [AppDomain](/javascript/api/manifest/appdomain) element within the `` element list. If the add-in goes to a page in the `www.northwindtraders.com` domain, that page opens in the add-in pane, even in Office desktop.
diff --git a/docs/develop/yeoman-generator-overview.md b/docs/develop/yeoman-generator-overview.md
index 192153ca97..6811587897 100644
--- a/docs/develop/yeoman-generator-overview.md
+++ b/docs/develop/yeoman-generator-overview.md
@@ -11,7 +11,7 @@ ms.localizationpriority: high
The [Yeoman Generator for Office Add-ins](https://github.com/OfficeDev/generator-office) (also called "Yo Office") is an interactive Node.js-based command line tool that creates Office Add-in development projects. These projects are Node.js-based. When you want the server-side code of the add-in to be in a .NET-based language (such as C# or VB.Net) or you want the add-in hosted in Internet Information Server (IIS), [use Visual Studio to create the add-in](develop-add-ins-visual-studio.md).
> [!NOTE]
-> Office add-ins can also be created with the [Microsoft 365 Agents Toolkit](agents-toolkit-overview.md) or the [Office Add-in Development Kit](development-kit-overview.md).
+> Office add-ins can also be created with the [Microsoft 365 Agents Toolkit](agents-toolkit-overview.md) or the [Office Add-in Development Kit](development-kit-overview.md).
The projects that the tool creates have the following characteristics.
@@ -22,7 +22,7 @@ The projects that the tool creates have the following characteristics.
- By default, all dependencies are installed by the tool, but you can postpone the installation with a command line argument.
- They include a complete add-in manifest.
- They have a "Hello World"-level add-in that is ready run as soon as the tool has finished.
-- They include a polyfill and a transpiler that is configured to transpile TypeScript, and recent versions of JavaScript, to ES5 JavaScript. These features ensure that the add-in is supported in all webview runtimes that Office Add-ins might run in, including Trident (Internet Explorer).
+- They include a polyfill and a transpiler that is configured to transpile TypeScript, and recent versions of JavaScript, to ES5 JavaScript. These features ensure that the add-in runs in all current webview runtimes used by Office Add-ins. The polyfill and transpiler also provide backward compatibility with legacy webviews such as Trident (Internet Explorer), though these are no longer officially supported.
> [!TIP]
> If you want to deviate from these choices significantly, such as using a different task runner or a different server, we recommend that when you run the tool you choose the [Manifest-only option](#manifest-only-option).
diff --git a/docs/excel/custom-functions-debugging.md b/docs/excel/custom-functions-debugging.md
index 2a54e8f182..f138f501f6 100644
--- a/docs/excel/custom-functions-debugging.md
+++ b/docs/excel/custom-functions-debugging.md
@@ -1,7 +1,7 @@
---
title: Custom functions debugging in a non-shared runtime
description: Debug Excel custom functions that don't use a shared runtime.
-ms.date: 10/22/2025
+ms.date: 11/06/2025
ms.topic: troubleshooting
ms.localizationpriority: medium
---
@@ -18,7 +18,6 @@ This article covers debugging only for custom functions that **don't use a [shar
> The debugging techniques that are described in this article don't work with projects that are created with the **Office Add-in project containing the manifest only** option in the Yeoman generator. The scripts that are referred to later in this article aren't installed with that option. To debug an add-in that is created with this option, see the instructions in one of the following articles, as appropriate.
>
> - [Debug add-ins using developer tools in Microsoft Edge (Chromium-based)](../testing/debug-add-ins-using-devtools-edge-chromium.md)
-> - [Debug add-ins using developer tools in Internet Explorer](../testing/debug-add-ins-using-f12-tools-ie.md)
> - [Debug Office Add-ins on a Mac](../testing/debug-office-add-ins-on-ipad-and-mac.md)
The process of debugging a custom function for add-ins that don't use a shared runtime varies depending on the target platform (Windows, Mac, or web) and on whether you are using Visual Studio Code or a different IDE. Use the links in the following table to visit sections of this article that are relevant to your debugging scenario. In this table, "CF-NSR" refers to custom functions in a non-shared runtime.
diff --git a/docs/images/choose-target-to-debug.png b/docs/images/choose-target-to-debug.png
deleted file mode 100644
index 9a6bb2334aded1411d112bf45675ae53eb6acd94..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 34287
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
B!aV>0
diff --git a/docs/images/edge-devtools-with-add-in-and-dialog-processes.png b/docs/images/edge-devtools-with-add-in-and-dialog-processes.png
deleted file mode 100644
index 5f5035c6efd7d00e55620ab71458ad1c21ae3b33..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 52928
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