FrontTailor 1.0.0 (10 November 2026): inspector, OData, performance, UI5 2.0, AI and operations for SAP Fiori® and UI5 apps – in one panel. What’s inside → +43 664 1964199Contact →

Inspector

The inspector shows the control behind every pixel of a UI5 app: type, ID, view, properties, bindings, aggregations and events – live, while the app runs. It is free and part of the Community edition.

Edition
Community
Tab
“Inspector”
Shortcut
Alt+Shift+F
Surfaces
DevTools panel and side panel
On PROD
reading allowed, live edit locked

The tab at a glance

Open the FrontTailor panel in DevTools (F12), or the side panel from the extension icon, and choose the Inspector tab. The app’s control tree is on the left, the details of the selected control on the right. In the narrow side panel they are stacked.

Inspector tab with the control tree of the freestyle demo app, search field and filters
The inspector on the freestyle demo app: 127 nodes, read in a few milliseconds.
  1. Pick control starts pick mode: then click a control in the page. Next to it, Reload tree reads the tree again.
  2. Search ID, type or text – all three are searched. Matches keep their ancestors so you see where the control sits.
  3. Filters: Only visible, Only bound and Only custom controls (type not from sap.*). To the right: the number of nodes and how long reading took.
  4. The control tree: UI areas, components, views and controls in the app’s order. Arrow keys move the selection.

The tree follows the running app: when the app opens a dialog or loads more list items, the new controls appear by themselves. For very large apps the inspector shows up to 20,000 nodes; beyond that it says “Tree truncated: only the first … nodes are shown.”

Pick a control in the page

  1. Click Pick control or press Alt+Shift+F – the shortcut also works with DevTools closed and then opens the side panel.
  2. Move the mouse over the app. A frame shows the control under the pointer with type, ID and – if bound – the binding path.
  3. Click the control. The app does not see the click: no button fires, no popover closes. Esc cancels.
  4. The inspector jumps to the control in the tree and shows its details on the right.
Freestyle demo app in pick mode with a frame around a list item labelled sap.m.ObjectListItem with its binding path
In pick mode the frame labels the control under the pointer – here a bound sap.m.ObjectListItem.

This also works in dialogs, popovers and apps that run in an iframe inside the launchpad. A click in a frame switches the inspector to that frame; the Frame selector above the tree shows which one is meant (Top frame is the page itself).

Details of a control

Details of a bound button: type sap.m.Button, ID, view, API reference, parent chain, actions and properties table
Details of the demo app’s “Error cases” button. Its text property is bound to an i18n text.
  1. Type and ID, below them view and component. Next to them, API reference opens the class in the UI5 documentation of exactly the version the app loads; Fiori Design Guidelines opens the matching guidelines page if there is one.
  2. Parent chain: every ancestor up to the UI area, clickable.
  3. Copy as… – ID, OPA5 selector, wdi5 selector, Playwright locator or XML snippet (see below).
  4. Store as variable hands the control to the DevTools console (see below).
  5. bound below a property name opens where the value comes from.

The details have five tabs:

TabWhat you see
PropertiesName, value, type and default of every property, bound ones marked, own and inherited told apart. Values are editable (see live edit).
BindingsFor each bound property: path, model, Resolved path, mode, formatter and type; for composite and expression bindings every part.
AggregationsChildren per aggregation with count and IDs, plus the associations.
EventsEvery event with its number of listeners and the handler names.
ContextModels and binding contexts the control sees, with Context path.

Property, aggregation and event names in the tables link to their entry in the API reference of the class that declares them. If a control is not in the tree – say a dialog that was never opened – a note in the details explains why and names the root.

Where does the value come from? Reading bindings

  1. Select the control (pick or search).
  2. In the Properties tab, click bound below the property name.
  3. The Binding of … popover shows the path as written, Resolved path, model, Model type (OData V2, OData V4, JSON, Resource (i18n), XML), Value in the model, Current value, binding mode, type and formatter – for i18n texts key and text.
  4. Copy path takes the path with you, Show in Bindings tab highlights the row in the Bindings tab, Show in Model Explorer opens the Model explorer tab right at that spot.
Popover “Binding of placeholder” with i18n key, path, model, model type Resource (i18n), value in the model and binding mode
The popover for the search field’s placeholder property: an i18n text, mode OneWay.
  1. Path as written in the view.
  2. Model type – here a resource model with the i18n texts.
  3. Copy path.
  4. Show in Bindings tab.
Bindings tab of the button with the text property, model i18n and path errorCases
The Bindings tab sums up all bound properties of a control.

When a field stays empty, the tab usually tells you why: “not resolved” means the control has no model or context yet – typical for a relative path without an element binding.

Edit properties live

In the Properties tab every value is an editor: booleans as check boxes, enums as a select, numbers as a number field, everything else as a text field. Objects and arrays stay read-only.

  • Enter or leaving the field applies the value; Esc brings back the page’s value.
  • The inspector checks the value against the data type. If it does not fit, you see “Invalid value: …” and the control keeps its value.
  • For bound properties a note warns: “Bound: the next model update overwrites a change.” With TwoWay bindings the change is written to the model, too.

Copy selectors and XML

Open menu Copy as with ID, OPA5 selector, wdi5 selector, Playwright locator and XML snippet
“Copy as…” creates selectors that find the control again.
EntryResult
IDthe full control ID
OPA5 selectorthis.waitFor({ id, viewName, controlType, … })
wdi5 selectorbrowser.asControl({ selector: { … } })
Playwright locatora locator on the end of the DOM ID, independent of the container prefix (for example in the launchpad)
XML snippetthe control as XML with namespace, ID, bindings and every value that differs from the default

Generated IDs such as __button3 never end up in a selector. Instead the inspector uses the control type and a feature that makes the control unique: a text, an i18n key or a binding path. The automated tests run the selectors against the demo apps.

Store as variable (DevTools console)

  1. Select the control and click Store as variable.
  2. The inspector stores it as $ft0 (the next one as $ft1 …, the latest always also as $ft) and shows an example call such as $ft0.getText().
  3. Switch to the DevTools console and use the variable. If the app runs in an iframe inside the launchpad, the inspector names the frame you have to pick at the top left of the console.
Note sap.m.Button stored as $ft0 with an example call and the list of console variables
Stored as $ft0 – with an example call and the list of all variables of the frame.

The menu next to it stores a binding context or a model instead of the control. The variables live in the page only until it reloads; FrontTailor stores none of it. Delete all clears them.

More actions in the details

  • Open in editor jumps to the view’s source file in your local editor. Set up the path mapping once in Tools (namespace → local folder).
  • Show in Elements panel selects the control’s DOM element in the DevTools Elements panel.
  • With from Pro you also get the AI entries Explain control, Why not visible? and wdi5 test – with your own key, see AI assistant.

Typical problems

What you seeCause and fix
The tree stays emptyThe page has not loaded UI5 (yet), or the host is not granted. The panel must say Connected at the top – see grant the domain.
“The selected control has no row in the tree”The control hangs on no UI area, for example a closed dialog. The details are complete anyway; open the dialog in the app and select the control again.
“not rendered” in the details headerThe control is hidden or not displayed yet, so it cannot be highlighted in the page.
Editors are greyed outThe host is marked as PROD. Live edit is locked there on purpose.

See also

Sources on this page

The superscript numbers in the text point here. Tap one to see the source right where it is used; all sources of this website are listed on one page.

  1. 1

    Control inspector with pick mode and “copy as” ↑Product · FrontTailor product documentation, ADR-005 “Control inspector” · checked on 2026-11-09

  2. 2

    Jump from the request to the control ↑Product · FrontTailor product documentation, ADR-010 “Jump to control” · checked on 2026-11-09

  3. 3

    Developer comfort ↑Product · FrontTailor product documentation, ADR-039 “Developer comfort” · checked on 2026-11-09

Frequently asked

Short answers.

How do I open FrontTailor’s UI5 inspector?
Open the FrontTailor panel in DevTools (F12) and choose the Inspector tab – or press Alt+Shift+F in the app; the side panel then opens in pick mode.
Can I change properties on PROD with the inspector?
No. On a host marked as PROD, live edit is locked, in the panel and also in the extension’s background. Reading, copying and storing as a variable stay allowed.
What does the inspector cost?
Nothing. The inspector is part of the free Community edition and needs no account. Only the AI entries in the details need Pro.
Does the inspector work in the Fiori launchpad and in iframes?
Yes. It runs in the top frame and in iframes; a click in pick mode switches it to the frame of the selected control.

Your question isn’t here? Talk to me: +43 664 1964199 office@clouddna.at Get in touch

Contact

Ten tabs too many? Talk to us.

You buy Pro and Team right here. For Enterprise, sideloading, policies, a workshop or a stubborn bug in your Fiori landscape: write to me. I reply within one working day, personally.

Martin KochManaging Director, CloudDNAI read every request myself and reply personally.