> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# supportedBrowser()

> Returns information about the current browser and its Daily feature support.

`Daily.supportedBrowser()`

<Badge color="green">{"✓"} Prebuilt</Badge> <Badge color="green">{"✓"} Custom</Badge>

Returns information about the current browser and which Daily features it supports. Call this before joining to detect unsupported environments and conditionally enable features.

## Example

```javascript theme={null}
const {
  supported,
  mobile,
  name,
  version,
  supportsScreenShare,
  supportsVideoProcessing,
  supportsAudioProcessing,
} = Daily.supportedBrowser();

if (!supported) {
  // Show an unsupported browser message
}
```

## Return value

Returns an object with the following fields:

<ResponseField name="supported" type="boolean">
  Whether the browser supports Daily video calls.
</ResponseField>

<ResponseField name="mobile" type="boolean">
  Whether the browser is running on a mobile device.
</ResponseField>

<ResponseField name="name" type="string">
  The browser name (e.g. `"Chrome"`, `"Firefox"`, `"Safari"`).
</ResponseField>

<ResponseField name="version" type="string">
  The browser version string.
</ResponseField>

<ResponseField name="supportsScreenShare" type="boolean">
  Whether the user can initiate a screen share. See [`supportsScreenShare`](#supportsscreenshare) below.
</ResponseField>

<ResponseField name="supportsFullscreen" type="boolean">
  Whether the browser supports fullscreen mode.
</ResponseField>

<ResponseField name="supportsSfu" type="boolean">
  Whether the browser supports SFU topology.
</ResponseField>

<ResponseField name="supportsVideoProcessing" type="boolean">
  Whether background blur and virtual backgrounds are available. See [`supportsVideoProcessing`](#supportsvideoprocessing) below.
</ResponseField>

<ResponseField name="supportsAudioProcessing" type="boolean">
  Whether noise cancellation is available. See [`supportsAudioProcessing`](#supportsaudioprocessing) below.
</ResponseField>

## Supported browsers

| Browser        | Minimum version | Notes                                                       |
| -------------- | --------------- | ----------------------------------------------------------- |
| Chrome         | 75              | Includes Chromium-based browsers and Edge 75+               |
| Firefox        | 91              |                                                             |
| Safari         | 13.1            |                                                             |
| iOS Safari     | iOS 14.3        | Also WKWebView-based browsers on iOS 14.3+                  |
| Android Chrome | Current         | Also Firefox, Samsung Internet, and Chromium-based browsers |
| Electron       | 6               |                                                             |

All other browsers (including legacy Edge, Internet Explorer, and Opera) are not supported. Chromium-based Edge reports a Chrome user agent and is treated identically to Chrome.

## `supportsScreenShare`

Screen share initiation requires desktop. Mobile users can **view** screen shares but cannot start one.

| Browser            | Can share screen  |
| ------------------ | ----------------- |
| Chrome (desktop)   | Yes               |
| Firefox (desktop)  | Yes               |
| Safari (desktop)   | Yes               |
| Any mobile browser | No — receive only |

## `supportsVideoProcessing`

Background blur and virtual backgrounds are powered by [Banuba](https://www.banuba.com/) and require WebGL2. Mobile browsers are not currently supported.

| Browser                | Supported |
| ---------------------- | --------- |
| Chrome 77+ (desktop)   | Yes       |
| Firefox 97+ (desktop)  | Yes       |
| Safari 15.4+ (desktop) | Yes       |
| Any mobile browser     | No        |
| React Native           | No        |

WebGL2 must be available — either hardware-accelerated or software-rendered. If only software WebGL2 is available, video effects will still work but may result in lower frame rates.

Safari requires version 15.4 or later. Earlier versions (pre-15 and 15.0–15.3) are excluded due to WebGL compatibility issues with Banuba.

## `supportsAudioProcessing`

Noise cancellation is powered by [Krisp](https://krisp.ai/) and requires `AudioWorkletNode`.

| Browser                | Supported |
| ---------------------- | --------- |
| Chrome (desktop)       | Yes       |
| Firefox (desktop)      | Yes       |
| Safari 17.4+ (desktop) | Yes       |
| Android Chrome/Firefox | No        |
| React Native           | No        |

Safari requires version 17.4 or later. Earlier versions lack `AudioWorkletNode` support.

## Known limitations

### Audio output device selection — Firefox 116–122

Audio output device selection is disabled on Firefox 116–122. These versions shipped `setSinkId()` with a bug that breaks echo cancellation when used. Fixed in Firefox 123.

### Local audio level observers — Safari older than 14.1

[`startLocalAudioLevelObserver()`](/reference/daily-js/instance-methods/start-local-audio-level-observer) relies on `AudioWorkletNode`, which is not available in Safari older than 14.1.

## See also

<CardGroup>
  <Card title="Methods" icon="code" iconType="solid">
    * [Daily.createCallObject()](/reference/daily-js/factory-methods/create-call-object)
    * [Daily.createFrame()](/reference/daily-js/factory-methods/create-frame)
    * [join()](/reference/daily-js/instance-methods/join)
  </Card>

  <Card title="Guides" icon="book-open" iconType="solid">
    * [Introduction](/docs/daily-js/introduction)
  </Card>
</CardGroup>
