Change Log
2.0.0 (TBD)
This release is currently in beta testing. Due to the AppSource submission process being lengthy and difficult to roll back, it is currently only available for download while we're testing and validating it.
The biggest update to the visual so far, focused on giving authors more control over layout, rendering, and debugging.
HTML Content (lite) is now HTML Content Secure 🛡️
The certified edition has been renamed from HTML Content (lite) to HTML Content Secure, to better reflect what it is - the sanitized, certification-compliant build. It is the same visual, and existing reports are unaffected. Earlier entries in this change log keep the name they shipped under. See Visual Editions for the edition comparison.
Legacy (v1.x) Rendering Compatibility
Version 1.x had some opinionated styling that applied to the visual body, as well as a deeper structure applied to each row than might have been necessary. As HTML Content has a ~7-year legacy at the time of release, making changes to these things without user consent is a potentially problematic migration.
To keep migrated reports rendering identically, a new Compatibility card provides a Use legacy (v1) rendering toggle:
- Visuals migrated from v1.6 get it enabled automatically - same styling rules, same row structure as before.
- Freshly added visuals get it disabled, and render with more sensible defaults.
You can flip the toggle either way at any time. See Compatibility for exactly what changes and why.
Templates
Wrap your rows in a shared HTML shell without repeating markup in your measures, via the new Templates property card:
- A Body template wraps all rows - the
{{content}}token marks where rows are injected. - A Row template wraps each row - the
{{row}}token marks where that row's value goes. - The body template - and the stylesheet - can each be driven by a measure via conditional formatting (fx).
- Because templates provide more control over the DOM subtree, they make interactivity easier to achieve and integrate than ever before and can remove the need for many cases where a singular measure may have been your only solution. As such, the Simple Worked Example has been modified to use templates as the recommended way of working with visual designs.
Refer to the Templates page for full details.
Render Modes
A new On data update property controls how the visual updates the DOM when data changes: Rebuild content redraws everything, while Preserve unchanged content keeps entries whose value hasn't changed - so embedded iframes, inputs, and scripts don't reload unnecessarily.
Diagnostics
Power BI Desktop has no browser dev tools, so the visual now has its own: enable Content formatting > Enable diagnostics and, while editing, open the Diagnostic information dialog to inspect the processed raw HTML, sanitizer removals (Secure edition), captured console output, and a log of host events.
Theme Colors
The report's active theme palette is now exposed to your content and stylesheet as --pbi-theme-* CSS custom properties - data colors, structural, sentiment, and divergent slots, updated live when the theme or Windows high contrast changes. Works in every edition.
Suppressing Interactivity
A new data-hc-suppress attribute lets you mark elements (modals, popovers, custom controls) as inert to the visual's cross-filter, context-menu, and tooltip handling - declaratively, in every edition.
Scripting Guidelines
Scripting in the Regular edition has long been possible but undocumented and hard to support. With Templates and Diagnostics now available, there is a documented set of scripting guidelines covering execution order, recommended patterns, and debugging. Scripts remain unavailable in HTML Content Secure due to certification rules.
Minor Changes
- The Granularity data role has been renamed to Context, to better illustrate its purpose of creating row context (via columns), measure context for tooltips and/or drillthrough, or a combination of both. Behavior is unchanged.
1.6.2 (2026-06-18)
Bugs Fixed
- If your dataset measure contained a dynamic format string, this would crash.
1.6.1 (2026-05-29)
Bugs Fixed
-
Some content based on HTML generated by applications like Word or Outlook would not always propagate the desired body styling from the properties. To try and mitigate this without the need for a stylesheet, an Override inline styles property has been added to the Default body styling property card.
- This will attempt to propagate the body styling mandated in these properties (if available) throughout the DOM.
- It is disabled by default, but it may help overcome these situations without having to use a stylesheet.
- If your content still does not format as expected, then a stylesheet may be required to manage it correctly.
-
The Show raw HTML property was encoding some portions of HTML, meaning that it did not represent the HTML input to the DOM. This has been improved.
-
The unit on the Font size property has been corrected to
pt.
HTML Content (lite)-Specific Changes 🛡️
Following the April 2026 lite-certification update, the tighter sanitization rules had made some existing working cases unachievable.
This patch release aims to work with the updated certification rules and as many of these known cases as possible, keeping sanitization tight while improving the permissibility of legitimate cases. See Sanitization for the full rule set.
- SVG sanitization redesigned around a per-tag attribute denylist (replacing the previous over-strict allowlist).
- SMIL animation tags (
<animate>,<animateMotion>,<animateTransform>,<set>) are now permitted, withattributeName-based restrictions on which attributes they may target. data:image/svg+xmlURIs are now accepted on<img src>in;base64,,;utf8,, and bare-comma forms. The inner SVG payload is recursively scanned, and<script>,<foreignObject>, and<use>are stripped.- Multi-line and comma-separated CSS selectors are no longer silently dropped.
- SVG payload scanning has been extended to functional-IRI presentation attributes (
mask,clip-path,filter,marker-*). - Hyperlink
hrefhandling has been hardened for certification: when Allow opening URLs is disabled (the default),hrefandxlink:hrefare now stripped from<a>elements entirely, rather than left in the DOM with the click suppressed.
After 1.6.0, we saw users reporting issues in which their CSS/styling was being sanitized. Whilst we found some legitimate cases that could be improved under the new certification rules, some folks were using incorrect comment formatting (line-style // vs. block-style /* ... */) in their content. Only block-style comments are supported by the CSS specification, and we've added a FAQ section for this - worth checking, just in case.
1.6.0 (2025-04-03)
Markdown Rendering
You can now specify whether to render your content using HTML (default) or Markdown. Refer to the Content Formatting page to read more about this.
HTML Content (lite)-Specific Changes (2026-04-25)
Stricter Content Sanitization
Ongoing refinement of Microsoft's custom-visual certification rules has driven a round of sanitization tightening. A Sanitization page has also been added to fully document this and keep track of things as these rules are updated.
New Tags
Several tags were found to be missing from the safe list and have been added: <del>, <details>, <ins>, <meter>, <output>, <progress>, <search>, <summary>. An SVG filter primitive (<feMergeNode>) that was misspelled in the safe list has also been restored.
Bugs Fixed
- Fixed an issue in HTML sanitization where the
<feDisplacementMap>SVG tag was not being correctly processed.
1.5.0 (2024-04-29)
Minor Enhancements
- Multi-selection support has been added.
- Keyboard navigation support has been added.
- The properties pane has been updated to use formatting cards.
Bugs Fixed
- The default font name (Segoe UI) has been fixed to show as the default in the Content formatting > Font family property.
1.4.1 (2023-09-20)
Minor Enhancements
- DIN has been added as a valid font (you can use either
dinorwf_standard-fontin your styling).
Bugs Fixed
- Iframe display functionality was failing due to breaking changes to the custom visuals APIs in 1.4.0. This has been restored, but note that the previous restrictions on iframes will still apply.
1.4.0 (2023-08-04)
Interactivity
Interactivity features for Power BI have been introduced, which provide some additional capabilities for your designs:
- Tooltips
- Cross-filtering
- Context menu and drillthrough
Note that these have their own considerations, depending on how you are configuring your visual, so please refer to the Interactivity page for more information.
Bugs Fixed
- If your page has right-to-left direction (or you are styling the visual's
<body>element manually to achieve this), the scrollbars will now be rendered on the correct side.
HTML Content (lite)-Specific Changes
These are only relevant to HTML Content (lite), which is the certified edition of HTML Content.
- Most available HTML attributes have been enabled, with the exception of anything that can be used for scripting (due to certification limitations).
- SVG elements are now available. The following tags are unavailable due to potential XSS vulnerabilities:
<foreignObject><script><use>
1.3.0 (2023-06-05)
HTML Content (lite): Certified Edition 🚀
A new edition of the visual named HTML Content (lite) is available in AppSource, which is a certified version of the visual. This is almost identical to the standard edition, but with a reduced set of available tags and attributes, to comply with Microsoft's certification requirements. You can read more about the differences between the two editions on the Editions page.
Due to the required visual APIs needed to support this edition, the minimum required versions are:
- Power BI Desktop: November 2022
- Power BI Report Server: May 2023
Note that as all changes in this version pertain to the certified edition, the standard edition will remain at version 1.2.1.
1.2.1 (2021-07-16)
Bugs Fixed
- 1.2.0 was using the latest Power BI Visuals API (3.8.0) but some versions of Power BI (e.g. Report Server) haven't caught up yet, so this has been reverted to 3.5.1.
1.2.0 (2021-05-24)
Allow Text Select
The Content formatting menu now includes an Allow text select property, which if enabled, will allow users to highlight text using their mouse. Highlighted text can be copied to the clipboard with Ctrl + C (or system equivalent).
Stylesheet
You can now apply a stylesheet independently to your content, via the properties pane. This can be either manually typed, or supplied via conditional formatting.
Refer to the Stylesheet page for more information on how this works, and how to set up.
Show Raw HTML
A new Show raw HTML property is available under the Content formatting property menu. If enabled, the generated HTML is now displayed in a read-only textarea element.
1.1.0 (2021-01-05)
"No Data" Message
Previously, the message displayed if there was no data available was hard-coded. The visual has now been modified to expose a "No Data" Message property. You can read more about how to use this feature on the Content Formatting page.
Default Title No Longer Used
When creating a new instance of the visual, the title will no longer be shown by default (like for the table visual). This can be enabled or modified in the usual way in the properties pane.
1.0.2 (2020-08-28)
Sorting
Sorting has been added to the visual, which is accessible from the visual header in the usual way, and will now permit you to sort by any measures or columns added to the visual's fields.
Bugs Fixed
- The visual would not render ordered (
<ol>) or unordered (<ul>) line item (<li>) elements due to styling applied higher up in the custom visual host container. This has been resolved to work as expected.
1.0.1 (2020-07-28)
Initial version released to the Power BI Marketplace.