diff --git a/controls/speechtotextbutton/accessibility-and-internationalization/internationalization.md b/controls/speechtotextbutton/accessibility-and-internationalization/internationalization.md
new file mode 100644
index 000000000..5a4d8e0dd
--- /dev/null
+++ b/controls/speechtotextbutton/accessibility-and-internationalization/internationalization.md
@@ -0,0 +1,22 @@
+---
+title: Internationalization
+page_title: SpeechToTextButton Internationalization
+description: "Internationalization of the Telerik WebForms SpeechToTextButton component."
+slug: speechtotextbutton/accessibility/internationalization
+tags: internationalization
+position: 1
+---
+
+# Internationalization
+
+The SpeechToTextButton supports Internationalization by its `Messages` collection. The collection consists of text messages, used as aria-labels by the control. Users can use this option to customize or localize the messages.
+
+Example
+
+````ASP.NET
+
+
+
+````
+
+The available Messages can be found in the [Server Properties article]({%slug speechtotextbutton/server-side-programming/properties#messages%}).
\ No newline at end of file
diff --git a/controls/speechtotextbutton/accessibility-and-internationalization/overview.md b/controls/speechtotextbutton/accessibility-and-internationalization/overview.md
new file mode 100644
index 000000000..61f993509
--- /dev/null
+++ b/controls/speechtotextbutton/accessibility-and-internationalization/overview.md
@@ -0,0 +1,56 @@
+---
+title: Overview
+page_title: SpeechToTextButton Accessibility
+description: Get started with the WebForms SpeechToTextButton and learn about its accessibility support for WAI-ARIA, Section 508, and WCAG 2.2.
+slug: speechtotextbutton/accessibility/overview
+position: 0
+---
+
+# SpeechToTextButton Accessibility
+
+The SpeechToTextButton is accessible by screen readers and provides WAI-ARIA, Section 508, WCAG 2.2, and keyboard support.
+
+Out of the box, the WebForms SpeechToTextButton provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.
+
+The SpeechToTextButton is compliant with the [Web Content Accessibility Guidelines (WCAG) 2.2 AAA](https://www.w3.org/TR/WCAG22/) standards and [Section 508](https://www.section508.gov/) requirements, follows the [Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA)](https://www.w3.org/WAI/ARIA/apg/) best practices for implementing the [keyboard navigation](#keyboard-navigation) for its `component` role, provides options for managing its focus and is tested against the most popular screen readers.
+
+## WAI-ARIA
+
+This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any.
+
+| Selector | Attribute | Usage |
+| ----------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------- |
+| `.k-button.k-speech-to-text-button` | `role=button` or `nodeName=button` | If the used element is not ``, explicitly set its `role` to `button`. |
+| | `aria-pressed=true/false` | Announced the toggle behaviour of the button. |
+
+## Resources
+
+[WAI-ARIA Authoring Practices: Button Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/)
+
+## Section 508
+
+The SpeechToTextButton is fully compliant with the [Section 508 requirements](http://www.section508.gov/).
+
+## Testing
+
+The SpeechToTextButton has been extensively tested automatically with [axe-core](https://github.com/dequelabs/axe-core) and manually with the most popular screen readers.
+
+> To report any accessibility issues, contact the team through the [Telerik Support System](https://www.telerik.com/account/support-center).
+
+### Screen Readers
+
+The SpeechToTextButton has been tested with the following screen readers and browsers combinations:
+
+| Environment | Tool |
+| -------------- | ---- |
+| Firefox | NVDA |
+| Chrome | JAWS |
+| Microsoft Edge | JAWS |
+
+### Automated Testing
+
+The SpeechToTextButton has been tested with [axe-core](https://github.com/dequelabs/axe-core).
+
+### Test Example
+
+A live test example of the SpeechToTextButton component could be found here: https://demos.telerik.com/aspnet-ajax/speechtotextbutton/accessibility-and-internationalization/rtl/defaultcs.aspx
diff --git a/controls/speechtotextbutton/appearance.md b/controls/speechtotextbutton/appearance.md
new file mode 100644
index 000000000..6329c3aa9
--- /dev/null
+++ b/controls/speechtotextbutton/appearance.md
@@ -0,0 +1,153 @@
+---
+title: Appearance
+page_title: SpeechToTextButton Appearance
+description: "Learn how to set the options to change the appearance such as, sizes, border radiuses, fill modes and theme colors."
+slug: speechtotextbutton/appearance
+tags: appearance,speechtotextbutton
+published: True
+position: 2
+---
+
+# Appearance
+
+In this article, you will find information about the styling options and rendering of the WebForms SpeechToTextButton.
+
+For a live example, visit the [Appearance Demo of the SpeechToTextButton](https://demos.telerik.com/aspnet-ajax/speechtotextbutton/appearance/defaultcs.aspx).
+
+## Options
+
+The WebForms SpeechToTextButton supports the following styling options:
+
+- [`Icon`](#icon) - Configures the icon displayed when the button is in inactive state.
+- [`StopIcon`](#stopicon) - Configures the icon displayed when the button is speech recognition state.
+- [`FillMode`](#fillmode) - Configures how the color is applied to the component.
+- [`Rounded`](#rounded) - Configures the border radius of the component.
+- [`Size`](#size) - Configures the overall size of the component.
+- [`ThemeColor`](#theme-color) - Configures what color will be applied to the component.
+
+## Icon
+
+The `Icon` option determines which icon is displayed when the button is not in the active state. The default is the `microphone-outline` icon.
+
+
+
+Example
+
+````ASP.NET
+
+````
+
+## StopIcon
+
+The `StopIcon` option determines which icon is displayed when the button is in the active state (speech recognition in progress). The default is the `stop-sm` icon.
+
+
+
+Example
+
+````ASP.NET
+
+````
+
+## FillMode
+
+The `FillMode` option controls how the color is applied to the button.
+
+
+
+Available values:
+
+- `Solid` - Solid background color (default)
+- `Outline` - Outlined border with transparent background
+- `Flat` - No border or background color
+- `None`
+
+````ASP.NET
+
+
+
+
+````
+
+## Rounded
+
+The `Rounded` option controls the border radius of the button.
+
+
+
+Available values:
+
+- `Small` - Small border radius
+- `Medium` - Medium border radius (default)
+- `Large` - Large border radius
+- `Full` - Fully rounded corners (pill shape)
+- `None`
+
+````ASP.NET
+
+
+
+
+
+````
+
+## Size
+
+The `Size` option controls how big or small the rendered button looks.
+
+
+
+
+Available values:
+
+- `Small` - Small size
+- `Medium` - Medium size (default)
+- `Large` - Large size
+- `None`
+
+````ASP.NET
+
+
+
+
+````
+
+## Theme Color
+
+The `ThemeColor` option controls the color applied to the button.
+
+
+
+Available values:
+
+- `Primary` - Primary accent color
+- `Secondary` - Secondary accent color
+- `Tertiary` - Tertiary accent color
+- `Info` - Informational color
+- `Success` - Positive action color
+- `Warning` - Attention‑drawing color
+- `Error` - Negative action color
+- `Base` - Default color based on the current theme
+
+````ASP.NET
+
+
+
+
+
+
+
+
+````
+
+## Button States
+
+* **Inactive State** - Default state before speech recognition begins
+* **Active State** - Indicates that speech recognition is currently in progress
+* **Error State** - Displays when speech recognition encounters an error or is not supported by the browser
+
+## Next Steps
+
+- [Accessibility]({%slug speechtotextbutton/accessibility/overview%})
+- [Client-side Programming]({%slug speechtotextbutton/client-side-programming/overview%})
+- [Server-side Programming]({%slug speechtotextbutton/server-side-programming/overview%})
diff --git a/controls/speechtotextbutton/client-side-programming/enums.md b/controls/speechtotextbutton/client-side-programming/enums.md
new file mode 100644
index 000000000..5822bbb55
--- /dev/null
+++ b/controls/speechtotextbutton/client-side-programming/enums.md
@@ -0,0 +1,71 @@
+---
+title: Enums
+page_title: SpeechToTextButton Client-side Enums
+description: Client-side Enums of the Telerik WebForms SpeechToTextButton component
+slug: speechtotextbutton/client-side-programming/enums
+tags: speechtotextbutton,javascript,enums
+published: True
+position: 3
+---
+
+# Enums
+
+Telerik WebForms SpeechToTextButton specific Client-side Enums.
+
+## FillMode
+
+The enum type: `Telerik.Web.UI.RadSpeechToTextButtonFillMode`
+
+| Enum member | Value |
+| ------------------------------------------------------ | ----- |
+| `Telerik.Web.UI.RadSpeechToTextButtonFillMode.None` | `0` |
+| `Telerik.Web.UI.RadSpeechToTextButtonFillMode.Solid` | `1` |
+| `Telerik.Web.UI.RadSpeechToTextButtonFillMode.Outline` | `2` |
+| `Telerik.Web.UI.RadSpeechToTextButtonFillMode.Flat` | `3` |
+
+## IntegrationMode
+
+The enum type: `Telerik.Web.UI.RadSpeechToTextButtonIntegrationMode`
+
+| Enum member | Value |
+| --------------------------------------------------------------- | ----- |
+| `Telerik.Web.UI.RadSpeechToTextButtonIntegrationMode.WebSpeech` | `0` |
+| `Telerik.Web.UI.RadSpeechToTextButtonIntegrationMode.None` | `1` |
+
+## Rounded
+
+The enum type: `Telerik.Web.UI.RadSpeechToTextButtonRounded`
+
+| Enum member | Value |
+| ---------------------------------------------------- | ----- |
+| `Telerik.Web.UI.RadSpeechToTextButtonRounded.None` | `0` |
+| `Telerik.Web.UI.RadSpeechToTextButtonRounded.Small` | `1` |
+| `Telerik.Web.UI.RadSpeechToTextButtonRounded.Medium` | `2` |
+| `Telerik.Web.UI.RadSpeechToTextButtonRounded.Large` | `3` |
+| `Telerik.Web.UI.RadSpeechToTextButtonRounded.Full` | `4` |
+
+## Size
+
+The enum type: `Telerik.Web.UI.RadSpeechToTextButtonSize`
+
+| Enum member | Value |
+| ------------------------------------------------- | ----- |
+| `Telerik.Web.UI.RadSpeechToTextButtonSize.None` | `0` |
+| `Telerik.Web.UI.RadSpeechToTextButtonSize.Small` | `1` |
+| `Telerik.Web.UI.RadSpeechToTextButtonSize.Medium` | `2` |
+| `Telerik.Web.UI.RadSpeechToTextButtonSize.Large` | `3` |
+
+## ThemeColor
+
+The enum type: `Telerik.Web.UI.RadSpeechToTextButtonThemeColor`
+
+| Enum member | Value |
+| ---------------------------------------------------------- | ----- |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Primary` | `0` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Secondary` | `1` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Tertiary` | `2` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Info` | `3` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Success` | `4` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Warning` | `5` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Error` | `6` |
+| `Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Base` | `7` |
diff --git a/controls/speechtotextbutton/client-side-programming/events.md b/controls/speechtotextbutton/client-side-programming/events.md
new file mode 100644
index 000000000..f53259043
--- /dev/null
+++ b/controls/speechtotextbutton/client-side-programming/events.md
@@ -0,0 +1,215 @@
+---
+title: Events
+page_title: SpeechToTextButton Client-side Events
+description: "Client-side Events of the Telerik WebForms SpeechToTextButton component."
+slug: speechtotextbutton/client-side-programming/events
+tags: speechtotextbutton,javascript
+published: True
+position: 2
+---
+
+# Events
+
+Client-side Events of the Telerik WebForms SpeechToTextButton component.
+
+- [Load](#load)
+- [Start](#start)
+- [End](#end)
+- [Result](#result)
+- [Error](#error)
+
+## Load
+
+Fires when the SpeechToTextButton component and its Kendo widget is fully initialized.
+
+#### Event data
+
+- **sender** - `Telerik.Web.UI.RadSpeechToTextButton` - The **SpeechToTextButton** instance that triggered the event.
+
+Example
+
+```JavaScript
+function onLoad(sender, args) {
+ let speechToTextButton = sender; // Telerik.Web.UI.RadSpeechToTextButton
+ let kendoSpeechToTextButton = speechToTextButton.get_kendoWidget(); // kendo.ui.SpeechToTextButton
+}
+```
+
+#### Attaching the event
+
+##### In the Markup
+
+````ASP.NET
+
+
+
+````
+
+##### On Client-side
+
+````JavaScript
+function pageLoadHandler() {
+ let speechToTextButton = $find("<%= RadSpeechToTextButton1.ClientID %>");
+
+ speechToTextButton.add_load(onLoad);
+}
+
+Sys.Application.add_load(pageLoadHandler);
+````
+
+##### On Server-side
+
+````C#
+protected void Page_PreInit(object sender, EventArgs e)
+{
+ RadSpeechToTextButton1.ClientEvents.OnLoad = "onLoad";
+}
+````
+````VB
+Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreInit
+ RadSpeechToTextButton1.ClientEvents.OnLoad = "onLoad"
+End Sub
+````
+
+## Start
+
+Fires when the speech recognition service has begun listening to incoming audio.
+
+#### Event data
+
+- **sender** - `Telerik.Web.UI.RadSpeechToTextButton` - Th **SpeechToTextButton** instance that triggered the event.
+- **args** - `Sys.EventArgs` - Instance of a DomEvent Class that is part of ASP.NET AJAX, see [Sys.UI.DomEvent Class](https://learn.microsoft.com/en-us/previous-versions/bb383775(v=vs.100)?redirectedfrom=MSDN).
+
+| Property | Return Type | Description |
+| ------------------- | ----------- | ---------------------------- |
+| `get_kendoWidget()` | `Object` | The underlying Kendo widget. |
+
+#### Attaching the event
+
+##### In the Markup
+
+````ASP.NET
+
+
+
+````
+
+##### On Server-side
+
+````C#
+protected void Page_PreInit(object sender, EventArgs e)
+{
+ RadSpeechToTextButton1.ClientEvents.OnStart = "onStart";
+}
+````
+````VB
+Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreInit
+ RadSpeechToTextButton1.ClientEvents.OnStart = "onStart"
+End Sub
+````
+
+##### Event Function
+
+````JavaScript
+function onStart(sender, args) {
+ // Recognition started
+}
+````
+
+## End
+
+Fires when the speech recognition service has disconnected.
+
+#### Event data
+
+- **sender** - `Telerik.Web.UI.RadSpeechToTextButton` - The **SpeechToTextButton** instance that triggered the event.
+- **args** - `Sys.EventArgs` - Instance of a DomEvent Class that is part of ASP.NET AJAX, see [Sys.UI.DomEvent Class](https://learn.microsoft.com/en-us/previous-versions/bb383775(v=vs.100)?redirectedfrom=MSDN).
+
+| Property | Return Type | Description |
+| ------------------- | ----------- | ---------------------------- |
+| `get_kendoWidget()` | `Object` | The underlying Kendo widget. |
+
+#### Attaching the event
+
+##### In the Markup
+
+````ASP.NET
+
+
+
+````
+
+##### On Server-side
+
+````C#
+protected void Page_PreInit(object sender, EventArgs e)
+{
+ RadSpeechToTextButton1.ClientEvents.OnEnd = "onEnd";
+}
+````
+````VB
+Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreInit
+ RadSpeechToTextButton1.ClientEvents.OnEnd = "onEnd"
+End Sub
+````
+
+##### Event Function
+
+````JavaScript
+function onEnd(sender, args) {
+ // Recognition ended
+}
+````
+
+## Result
+
+Fires when the speech recognition service returns a result - a word or phrase has been positively recognized.
+
+#### Event data
+
+- **sender** - `Telerik.Web.UI.RadSpeechToTextButton` - The **SpeechToTextButton** instance that triggered the event.
+- **args** - Provides accessors to result info.
+
+| Property | Return Type | Description |
+| -------------------- | ----------- | ----------------------------------------------------- |
+| `get_isFinal()` | `bool` | Indicates if the current result is final. |
+| `get_alternatives()` | `Object[]` | Alternative transcripts with transcript & confidence. |
+
+Example.
+
+````JavaScript
+function onResult(sender, args) {
+ let isFinal = args.get_isFinal();
+
+ if (isFinal) {
+ let alternatives = args.get_alternatives();
+ let transcript = alternatives[0].transcript;
+ let confidence = alternatives[0].confidence;
+ }
+}
+````
+
+## Error
+
+Fires when a speech recognition error occurs.
+
+#### Event data
+
+- **sender** - `Telerik.Web.UI.RadSpeechToTextButton` - The **SpeechToTextButton** instance that triggered the event.
+- **args** - Error info.
+
+| Property | Return Type | Description |
+| ------------- | ----------------- | ------------------------------------- |
+| `get_error()` | `string` / Object | The error message or object returned. |
+
+Event handler example
+
+````JavaScript
+function onError(sender, args) {
+ console.error("Speech error:", args.get_error());
+}
+````
+
+## Next Steps
+
+- [Enums]({%slug otpinput/client-side-programming/enums%})
diff --git a/controls/speechtotextbutton/client-side-programming/overview.md b/controls/speechtotextbutton/client-side-programming/overview.md
new file mode 100644
index 000000000..c73ee87fe
--- /dev/null
+++ b/controls/speechtotextbutton/client-side-programming/overview.md
@@ -0,0 +1,113 @@
+---
+title: Overview
+page_title: SpeechToTextButton Client-side Programming
+description: "Overview of the Client-side APIs you can use to create and configure the Telerik WebForms SpeechToTextButton Control."
+slug: speechtotextbutton/client-side-programming/overview
+tags: client-side, client-side programming
+published: True
+position: 0
+---
+
+# Client-side Programming Overview
+
+Overview of the Client-side APIs you can use to configure the Telerik WebForms SpeechToTextButton Control.
+
+>important The Client-side APIs only allow making changes to a rendered `SpeechToTextButton` element. As an ASP.NET WebForms Component, it can only be created on the server, see [Server-side Programming Overview]({%slug speechtotextbutton/server-side-programming/overview%})
+
+## Get Client-side reference
+
+Example of getting Client-side reference to the `Telerik.Web.UI.RadSpeechToTextButton` object at Page Load.
+
+````ASP.NET
+
+````
+
+````JavaScript
+function pageLoadHandler(sender, args) {
+ let speechToTextButton = $find('<%= RadSpeechToTextButton1.ClientID %>'); // Telerik.Web.UI.RadSpeechToTextButton
+ let kendoSpeechToTextButton = speechToTextButton.get_kendoWidget(); // kendo.ui.SpeechToTextButton
+}
+
+Sys.Application.add_load(pageLoadHandler);
+````
+
+For more details about referencing Telerik Controls on the Client-side, you can check out the [Getting Client-Side References]({%slug general-information/get-client-side-reference%}) article.
+
+## Telerik WebForms SpeechToTextButton API
+
+The WebForms SpeechToTextButton exposes a few Client-side properties and enums that can be used to change the appearance on the client.
+
+For a list of available Properties and Enums, you can refer to the following articles:
+
+- [Properties]({%slug speechtotextbutton/client-side-programming/properties%})
+- [Enums]({%slug speechtotextbutton/client-side-programming/enums%})
+
+Example of changing the appearance on Page Load
+
+````ASP.NET
+
+````
+
+````JavaScript
+function pageLoadHandler(sender, args) {
+ let speechToTextButton = $find('<%= RadSpeechToTextButton1.ClientID %>');
+
+ let newSize = Telerik.Web.UI.RadSpeechToTextButtonSize.Large;
+ let newFillMode = Telerik.Web.UI.RadSpeechToTextButtonFillMode.Outline;
+ let newRounded = Telerik.Web.UI.RadSpeechToTextButtonRounded.Full;
+ let newThemeColor = Telerik.Web.UI.RadSpeechToTextButtonThemeColor.Success;
+ let newIcon = "headset";
+ let newStopIcon = "pause-sm";
+
+ speechToTextButton.set_size(newSize);
+ speechToTextButton.set_fillMode(newFillMode);
+ speechToTextButton.set_rounded(newRounded);
+ speechToTextButton.set_themeColor(newThemeColor);
+ speechToTextButton.set_icon(newIcon);
+ speechToTextButton.set_stopIcon(newStopIcon);
+}
+
+Sys.Application.add_load(pageLoadHandler);
+````
+
+## Tips & Tricks
+
+You can create a JavaScript object containing all the Enums in one place for easier access.
+
+Example
+
+````ASP.NET
+
+````
+
+````JavaScript
+let SpeechToTextInputEnums = (function () {
+ try {
+ return {
+ FillMode: Telerik.Web.UI.RadSpeechToTextButtonFillMode,
+ Rounded: Telerik.Web.UI.RadSpeechToTextButtonRounded,
+ Size: Telerik.Web.UI.RadSpeechToTextButtonSize,
+ ThemeColor: Telerik.Web.UI.RadSpeechToTextButtonThemeColor
+ };
+ } catch (e) {
+ // Oops, Telerik.Web.UI is not defined
+ }
+})();
+
+function pageLoadHandler(sender, args) {
+ let speechToTextButton = $find('<%= RadSpeechToTextButton1.ClientID %>');
+
+ speechToTextButton.set_fillMode(SpeechToTextInputEnums.FillMode.Outline);
+ speechToTextButton.set_rounded(SpeechToTextInputEnums.Rounded.Full);
+ speechToTextButton.set_size(SpeechToTextInputEnums.Size.Large);
+ speechToTextButton.set_themeColor(SpeechToTextInputEnums.ThemeColor.Success);
+}
+
+Sys.Application.add_load(pageLoadHandler);
+````
+
+## Next Steps
+
+- [Properties]({%slug otpinput/client-side-programming/properties%})
+- [Events]({%slug otpinput/client-side-programming/events%})
+- [Enums]({%slug otpinput/client-side-programming/enums%})
diff --git a/controls/speechtotextbutton/client-side-programming/properties.md b/controls/speechtotextbutton/client-side-programming/properties.md
new file mode 100644
index 000000000..218154b63
--- /dev/null
+++ b/controls/speechtotextbutton/client-side-programming/properties.md
@@ -0,0 +1,85 @@
+---
+title: Properties
+page_title: SpeechToTextButton JavaScript Properties
+description: "JavaScript properties and methods of the Telerik WebForms SpeechToTextButton component."
+slug: speechtotextbutton/client-side-programming/properties
+tags: properties,speechtotextbutton
+published: True
+position: 1
+---
+
+# Properties
+
+SpeechToTextButton-specific properties to configure recognition behavior, appearance (fill mode, size, rounded corners, theme color), icons, and more.
+
+## Getters
+
+| Name | Return Type | Description |
+| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
+| `get_enabled()` | `bool` | Gets whether the SpeechToTextButton is enabled. |
+| `get_fillMode()` | [`Telerik.Web.UI.RadSpeechToTextButtonFillMode`]({%slug speechtotextbutton/client-side-programming/enums#fillmode%}) | Gets the fill mode applied to the button. |
+| `get_icon()` | `string` | Gets the icon shown when the button is idle (not listening). |
+| `get_integrationMode()` | [`Telerik.Web.UI.RadSpeechToTextButtonIntegrationMode`]({%slug speechtotextbutton/client-side-programming/enums#integrationmode%}) | Gets the speech integration mode. |
+| `get_interimResults()` | `bool` | Gets whether interim (partial) results are returned. |
+| `get_isContinuous()` | `bool` | Gets whether recognition runs in continuous mode. |
+| `get_isListening()` | `bool` | Gets whether the control is currently listening. |
+| `get_language()` | `string` | Gets the language (BCP-47 tag) used for recognition. |
+| `get_maxAlternatives()` | `number` | Gets the maximum number of alternative transcripts returned. |
+| `get_messages()` | `Object` | Gets the current messages (localizable text) configuration. |
+| `get_rounded()` | [`Telerik.Web.UI.RadSpeechToTextButtonRounded`]({%slug speechtotextbutton/client-side-programming/enums#rounded%}) | Gets the rounded (border radius) style. |
+| `get_size()` | [`Telerik.Web.UI.RadSpeechToTextButtonSize`]({%slug speechtotextbutton/client-side-programming/enums#size%}) | Gets the size applied to the button. |
+| `get_stopIcon()` | `string` | Gets the icon shown while the button is active (listening). |
+| `get_themeColor()` | [`Telerik.Web.UI.RadSpeechToTextButtonThemeColor`]({%slug speechtotextbutton/client-side-programming/enums#themecolor%}) | Gets the theme color applied to the button. |
+
+## Setters
+
+| Name | Parameter | Description |
+| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
+| `set_enabled(value)` | `bool` | Enables or disables the SpeechToTextButton. |
+| `set_fillMode(value)` | [`Telerik.Web.UI.RadSpeechToTextButtonFillMode`]({%slug speechtotextbutton/client-side-programming/enums#fillmode%}) | Sets the fill mode of the button. |
+| `set_icon(value)` | `string` | Sets the idle-state icon. |
+| `set_integrationMode(value)` | [`Telerik.Web.UI.RadSpeechToTextButtonIntegrationMode`]({%slug speechtotextbutton/client-side-programming/enums#integrationmode%}) | Sets the speech integration mode. |
+| `set_interimResults(value)` | `bool` | Enables or disables interim (partial) results. |
+| `set_isContinuous(value)` | `bool` | Enables or disables continuous recognition mode. |
+| `set_language(value)` | `string` | Sets the recognition language (BCP-47 tag). |
+| `set_maxAlternatives(value)` | `number` | Sets the maximum number of alternative transcripts to return. |
+| `set_messages(value)` | `Object` | Merges and sets the messages (localizable text) configuration. |
+| `set_rounded(value)` | [`Telerik.Web.UI.RadSpeechToTextButtonRounded`]({%slug speechtotextbutton/client-side-programming/enums#rounded%}) | Sets the rounded (border radius) style. |
+| `set_size(value)` | [`Telerik.Web.UI.RadSpeechToTextButtonSize`]({%slug speechtotextbutton/client-side-programming/enums#size%}) | Sets the size of the button. |
+| `set_stopIcon(value)` | `string` | Sets the active (listening) icon. |
+| `set_themeColor(value)` | [`Telerik.Web.UI.RadSpeechToTextButtonThemeColor`]({%slug speechtotextbutton/client-side-programming/enums#themecolor%}) | Sets the theme color of the button. |
+
+## Methods
+
+| Name | Description |
+| -------------------- | --------------------------------------------------- |
+| `abortRecognition()` | Aborts the current recognition session immediately. |
+| `startRecognition()` | Starts a speech recognition session. |
+| `stopRecognition()` | Stops recognition and finalizes any partial input. |
+| `destroy()` | Destroys the SpeechToTextButton widget instance. |
+
+### Set Messages
+
+`set_messages()` expects a **Messages** objct to be passed to it.
+
+```JavaScript
+function pageLoadHandler(sender, args) {
+ let speechToTextButton = $find('<%= RadSpeechToTextButton1.ClientID %>');
+
+ let newMessages = {
+ start: "Start speech recognition",
+ stop: "Stop speech recognition",
+ unsupported: "Speech recognition is not supported in this browser.",
+ notInitialized: "Speech recognition is not initialized."
+ };
+
+ speechToTextButton.set_messages(newMessages);
+}
+
+Sys.Application.add_load(pageLoadHandler);
+```
+
+## Next Steps
+
+- [Events]({%slug otpinput/client-side-programming/events%})
+- [Enums]({%slug otpinput/client-side-programming/enums%})
diff --git a/controls/speechtotextbutton/getting-started.md b/controls/speechtotextbutton/getting-started.md
new file mode 100644
index 000000000..233a0e06d
--- /dev/null
+++ b/controls/speechtotextbutton/getting-started.md
@@ -0,0 +1,67 @@
+---
+title: Getting Started
+page_title: Getting Started with the SpeechToTextButton
+description: "Get started with the WebForms SpeechToTextButton by Telerik UI for ASP.NET AJAX and learn how to create, initialize, and enable the component."
+slug: speechtotextbutton/getting-started
+tags: speechtotextbutton,getting started
+published: True
+position: 1
+---
+
+# Getting Started with the SpeechToTextButton
+
+This guide demonstrates how to get up and running with the Telerik WebForms SpeechToTextButton.
+
+After the completion of this guide, you will be able to achieve the following end result:
+
+
+
+## Create the SpeechToTextButton
+
+To create the SpeechToTextButton in the markup, add a `telerik:RadSpeechToTextButton` element to the page and configure its properties configure properties like `Icon`, `StopIcon` and `Continuous`.
+
+````ASP.NET
+
+````
+
+To create the SpeechToTextButton on the server, create a new instance of the `RadSpeechToTextButton` object, set its options and add it to the Controls collection of another control (e.g. `PlaceHolder1`)
+
+````ASP.NET
+
+````
+
+````C#
+protected void Page_Init(object sender, EventArgs e)
+{
+ RadSpeechToTextButton speechToTextButton = new RadSpeechToTextButton()
+ {
+ ID = "RadSpeechToTextButton1",
+ Icon = "headset",
+ StopIcon = "pause-sm",
+ ThemeColor="Base"
+ Continuous = true
+ };
+
+ PlaceHolder1.Controls.Add(speechToTextButton);
+}
+````
+````VB
+Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Init
+ Dim speechToTextButton As RadSpeechToTextButton = New RadSpeechToTextButton() With {
+ .ID = "RadSpeechToTextButton1",
+ .Icon = "headset",
+ .StopIcon = "pause-sm",
+ .ThemeColor="Base"
+ .Continuous = true
+ }
+
+ Placeholder1.Controls.Add(speechToTextButton)
+End Sub
+````
+
+## Next Steps
+
+- [Change the Appearance]({%slug speechtotextbutton/appearance%})
+- [Accessibility]({%slug speechtotextbutton/accessibility/overview%})
+- [Client-side Programming]({%slug speechtotextbutton/client-side-programming/overview%})
+- [Server-side Programming]({%slug speechtotextbutton/server-side-programming/overview%})
diff --git a/controls/speechtotextbutton/images/sttb-fill-mode.png b/controls/speechtotextbutton/images/sttb-fill-mode.png
new file mode 100644
index 000000000..547e20650
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-fill-mode.png differ
diff --git a/controls/speechtotextbutton/images/sttb-getting-started.png b/controls/speechtotextbutton/images/sttb-getting-started.png
new file mode 100644
index 000000000..ffb9baf25
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-getting-started.png differ
diff --git a/controls/speechtotextbutton/images/sttb-overview.png b/controls/speechtotextbutton/images/sttb-overview.png
new file mode 100644
index 000000000..facd5ed81
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-overview.png differ
diff --git a/controls/speechtotextbutton/images/sttb-rounded.png b/controls/speechtotextbutton/images/sttb-rounded.png
new file mode 100644
index 000000000..4cd35e78b
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-rounded.png differ
diff --git a/controls/speechtotextbutton/images/sttb-size.png b/controls/speechtotextbutton/images/sttb-size.png
new file mode 100644
index 000000000..bd14f40e5
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-size.png differ
diff --git a/controls/speechtotextbutton/images/sttb-stop-icon.png b/controls/speechtotextbutton/images/sttb-stop-icon.png
new file mode 100644
index 000000000..d71e6f1d1
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-stop-icon.png differ
diff --git a/controls/speechtotextbutton/images/sttb-theme-color.png b/controls/speechtotextbutton/images/sttb-theme-color.png
new file mode 100644
index 000000000..464cf1de4
Binary files /dev/null and b/controls/speechtotextbutton/images/sttb-theme-color.png differ
diff --git a/controls/speechtotextbutton/overview.md b/controls/speechtotextbutton/overview.md
new file mode 100644
index 000000000..19d970a40
--- /dev/null
+++ b/controls/speechtotextbutton/overview.md
@@ -0,0 +1,52 @@
+---
+title: Overview
+page_title: SpeechToTextButton Overview
+description: "Try now the Telerik UI for ASP.NET AJAX SpeechToTextButton control that converts spoken words into text through a button interface. This component is a server-side, ASP.NET WebForms wrapper over the Kendo UI for jQuery SpeechToTextButton widget."
+slug: speechtotextbutton/overview
+tags: overview
+published: True
+position: 0
+CTAControlName: WebForms SpeechToTextButton
+---
+
+# WebForms SpeechToTextButton Overview
+
+The Telerik WebForms SpeechToTextButton provides speech-to-text functionality. It allows users to convert spoken words into text through a button interface that activates speech recognition capabilities. This component is an ASP.NET WebForms wrapper over the [Kendo UI SpeechToTextButton widget](https://docs.telerik.com/kendo-ui/controls/speechtotextbutton/overview).
+
+{% if site.has_cta_panels == true %}
+{% include cta-panel-overview.html %}
+{% endif %}
+
+
+
+The SpeechToTextButton utilizes the [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API) to provide real-time speech recognition functionality, making it easy to add voice input capabilities to your applications.
+
+To see the SpeechToTextButton in action, you can check out the live examples at [WebForms SpeechToTextButton demos](https://demos.telerik.com/aspnet-ajax/speechtotextbutton/overview/defaultcs.aspx).
+
+## Functionality and Features
+
+* Speech Recognition - Converts user speech to text using the Web Speech API
+* Continuous Recognition - Supports continuous speech recognition for longer dictation sessions
+* Real-time Transcription - Provides both final and interim recognition results as the user speaks
+* State Management - Visual indication of active and inactive states during recording
+* Event Handling - Comprehensive event model for integrating with other components
+
+## Browser Support
+
+The SpeechToTextButton depends on the Web Speech API, which has varying levels of support across browsers:
+
+* Chrome - Full support
+* Edge - Full support
+* Firefox - Partial support, may require user permissions
+* Safari - Limited support
+* Mobile Browsers - Support varies; typically requires HTTPS
+
+>important The Web Speech API requires a secure context (HTTPS) in most browsers. Make sure your application is served over HTTPS for optimal functionality.
+
+## Next Steps
+
+- [Getting Started with the Telerik WebForms SpeechToTextButton]({%slug speechtotextbutton/getting-started%})
+- [Change the Appearance]({%slug speechtotextbutton/appearance%})
+- [Accessibility]({%slug speechtotextbutton/accessibility/overview%})
+- [Client-side Programming]({%slug speechtotextbutton/client-side-programming/overview%})
+- [Server-side Programming]({%slug speechtotextbutton/server-side-programming/overview%})
diff --git a/controls/speechtotextbutton/server-side-programming/enums.md b/controls/speechtotextbutton/server-side-programming/enums.md
new file mode 100644
index 000000000..2ebd22756
--- /dev/null
+++ b/controls/speechtotextbutton/server-side-programming/enums.md
@@ -0,0 +1,71 @@
+---
+title: Enums
+page_title: SpeechToTextButton Server-side Enums
+description: Server-side Enums of the Telerik WebForms SpeechToTextButton component
+slug: speechtotextbutton/server-side-programming/enums
+tags: speechtotextbutton,server,enums
+published: True
+position: 2
+---
+
+# Enums
+
+Telerik WebForms SpeechToTextButton specific Server-side Enums.
+
+## FillMode
+
+The enum type: `Telerik.Web.UI.SpeechToTextButtonFillMode`
+
+| Enum member | Value |
+| --------------------------------------------------- | ----- |
+| `Telerik.Web.UI.SpeechToTextButtonFillMode.None` | `0` |
+| `Telerik.Web.UI.SpeechToTextButtonFillMode.Solid` | `1` |
+| `Telerik.Web.UI.SpeechToTextButtonFillMode.Outline` | `2` |
+| `Telerik.Web.UI.SpeechToTextButtonFillMode.Flat` | `3` |
+
+## IntegrationMode
+
+The enum type: `Telerik.Web.UI.SpeechToTextButtonIntegrationMode`
+
+| Enum member | Value |
+| ------------------------------------------------------------ | ----- |
+| `Telerik.Web.UI.SpeechToTextButtonIntegrationMode.WebSpeech` | `0` |
+| `Telerik.Web.UI.SpeechToTextButtonIntegrationMode.None` | `1` |
+
+## Rounded
+
+The enum type: `Telerik.Web.UI.SpeechToTextButtonRounded`
+
+| Enum member | Value |
+| ------------------------------------------------- | ----- |
+| `Telerik.Web.UI.SpeechToTextButtonRounded.None` | `0` |
+| `Telerik.Web.UI.SpeechToTextButtonRounded.Small` | `1` |
+| `Telerik.Web.UI.SpeechToTextButtonRounded.Medium` | `2` |
+| `Telerik.Web.UI.SpeechToTextButtonRounded.Large` | `3` |
+| `Telerik.Web.UI.SpeechToTextButtonRounded.Full` | `4` |
+
+## Size
+
+The enum type: `Telerik.Web.UI.SpeechToTextButtonSize`
+
+| Enum member | Value |
+| ---------------------------------------------- | ----- |
+| `Telerik.Web.UI.SpeechToTextButtonSize.None` | `0` |
+| `Telerik.Web.UI.SpeechToTextButtonSize.Small` | `1` |
+| `Telerik.Web.UI.SpeechToTextButtonSize.Medium` | `2` |
+| `Telerik.Web.UI.SpeechToTextButtonSize.Large` | `3` |
+
+## ThemeColor
+
+The enum type: `Telerik.Web.UI.SpeechToTextButtonThemeColor`
+
+| Enum member | Value |
+| ------------------------------------------------------- | ----- |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Primary` | `0` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Secondary` | `1` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Tertiary` | `2` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Info` | `3` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Success` | `4` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Warning` | `5` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Error` | `6` |
+| `Telerik.Web.UI.SpeechToTextButtonThemeColor.Base` | `7` |
diff --git a/controls/speechtotextbutton/server-side-programming/overview.md b/controls/speechtotextbutton/server-side-programming/overview.md
new file mode 100644
index 000000000..800cd368f
--- /dev/null
+++ b/controls/speechtotextbutton/server-side-programming/overview.md
@@ -0,0 +1,97 @@
+---
+title: Overview
+page_title: SpeechToTextButton Server-side Programming
+description: "Overview of the Server-side APIs you can use to create and configure the Telerik WebForms SpeechToTextButton Control."
+slug: speechtotextbutton/server-side-programming/overview
+tags: overview, speechtotextbutton, server-side
+published: True
+position: 0
+---
+
+# Server-side Programming Overview
+
+Overview of the Server-side APIs you can use to create and configure the Telerik WebForms SpeechToTextButton control.
+
+## Creating the SpeechToTextButton in the Markup
+
+To create a SpeechToTextButton in the markup, add the `RadSpeechToTextButton` element to the page and set its properties. You can find the full list of properties in the [Properties]({%slug speechtotextbutton/server-side-programming/properties%}) article.
+
+Example
+
+````ASP.NET
+
+
+
+````
+
+## Creating the SpeechToTextButton Dynamically
+
+To create the SpeechToTextButton on the server, create a new instance of the `RadSpeechToTextButton` object, set its properties and add it to the Controls collection of another control (e.g. a `PlaceHolder`).
+
+You can find the properties and enums in the following articles:
+
+- [Properties]({%slug speechtotextbutton/server-side-programming/properties%})
+- [Enums]({%slug speechtotextbutton/client-side-programming/enums%})
+
+Example
+
+````C#
+protected void Page_PreInit(object sender, EventArgs e)
+{
+ RadSpeechToTextButton speechButton = new RadSpeechToTextButton()
+ {
+ Icon = "headset",
+ StopIcon = "pause-sm",
+ Continuous = true,
+ InterimResults = true,
+ MaxAlternatives = 5,
+ Size = SpeechToTextButtonSize.Large,
+ Rounded = SpeechToTextButtonRounded.Full,
+ FillMode = SpeechToTextButtonFillMode.Outline,
+ ThemeColor = SpeechToTextButtonThemeColor.Success
+ };
+
+ speechButton.Messages.NotInitialized = "Initializing...";
+ speechButton.Messages.Start = "Start";
+ speechButton.Messages.Stop = "Stop";
+ speechButton.Messages.Unsupported = "Not supported";
+
+ PlaceHolder1.Controls.Add(speechButton);
+}
+
+````
+````VB
+Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs)
+ Dim speechButton As RadSpeechToTextButton = New RadSpeechToTextButton() With {
+ .Icon = "headset",
+ .StopIcon = "pause-sm",
+ .Continuous = True,
+ .InterimResults = True,
+ .MaxAlternatives = 5,
+ .Size = SpeechToTextButtonSize.Large,
+ .Rounded = SpeechToTextButtonRounded.Full,
+ .FillMode = SpeechToTextButtonFillMode.Outline,
+ .ThemeColor = SpeechToTextButtonThemeColor.Success
+ }
+
+ speechButton.Messages.NotInitialized = "Initializing..."
+ speechButton.Messages.Start = "Start"
+ speechButton.Messages.[Stop] = "Stop"
+ speechButton.Messages.Unsupported = "Not supported"
+
+ PlaceHolder1.Controls.Add(speechButton)
+End Sub
+````
+
+`PlaceHolder1` declaration
+
+````ASP.NET
+
+````
+
+>important Creating controls programmatically must be done in an early event such as **PreInit** (preferably) or **Init**. For more details see the [ASP.NET Page Life-Cycle Events](https://learn.microsoft.com/en-us/previous-versions/aspnet/ms178472(v=vs.100)#life-cycle-events)
+
+## Next Steps
+
+- [Properties]({%slug speechtotextbutton/server-side-programming/properties%})
+- [Enums]({%slug speechtotextbutton/client-side-programming/enums%})
diff --git a/controls/speechtotextbutton/server-side-programming/properties.md b/controls/speechtotextbutton/server-side-programming/properties.md
new file mode 100644
index 000000000..6b8c3833e
--- /dev/null
+++ b/controls/speechtotextbutton/server-side-programming/properties.md
@@ -0,0 +1,44 @@
+---
+title: Properties
+page_title: SpeechToTextButton Server-side Properties
+description: "Server-side properties of the WebForms SpeechToTextButton component."
+slug: speechtotextbutton/server-side-programming/properties
+tags: speechtotextbutton,server-side,properties
+published: True
+position: 1
+---
+
+# Properties
+
+SpeechToTextButton-specific properties to configure recognition behavior, appearance, localization, and more.
+
+| Name | Return Type / Enum Link | Description |
+| ----------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
+| `Continuous` | `bool` | Gets/Sets whether continuous results are produced or only a single result. |
+| `Enable` | `bool` | Gets/Sets whether the button is enabled for user interaction. |
+| `FillMode` | [`Telerik.Web.UI.SpeechToTextButtonFillMode`]({%slug speechtotextbutton/server-side-programming/enums#fillmode%}) | Gets/Sets how the theme color is applied. |
+| `Icon` | `string` | Gets/Sets the Kendo icon name shown when idle (default: `microphone-outline`). |
+| `IntegrationMode` | [`Telerik.Web.UI.SpeechToTextButtonIntegrationMode`]({%slug speechtotextbutton/server-side-programming/enums#integrationmode%}) | Gets/Sets which speech engine integration to use. |
+| `InterimResults` | `bool` | Gets/Sets whether interim (non‑final) transcription results are emitted. |
+| `Language` | `string` | Gets/Sets the BCP‑47 language tag used for recognition (e.g. `en-US`). |
+| `MaxAlternatives` | `double` | Gets/Sets the maximum number of alternative transcripts per final result. |
+| `Messages` | [`Telerik.Web.UI.Messages`](#messages) | Provides localized/override strings for UI messages. |
+| `Rounded` | [`Telerik.Web.UI.SpeechToTextButtonRounded`]({%slug speechtotextbutton/server-side-programming/enums#rounded%}) | Gets/Sets the border radius style. |
+| `Size` | [`Telerik.Web.UI.SpeechToTextButtonSize`]({%slug speechtotextbutton/server-side-programming/enums#size%}) | Gets/Sets the overall size. |
+| `StopIcon` | `string` | Gets/Sets the Kendo icon name shown while listening (default: `stop-sm`). |
+| `ThemeColor` | [`Telerik.Web.UI.SpeechToTextButtonThemeColor`]({%slug speechtotextbutton/server-side-programming/enums#themecolor%}) | Gets/Sets the theme color. |
+
+## Messages
+
+Use the nested `` tag to customize the UI strings shown by the component. Only provide the attributes you want to override; unspecified ones keep their defaults.
+
+| Attribute | Default Value | Description |
+| ---------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `Start` | Start speech recognition | Tooltip/message used when the control is idle and can start recognition. |
+| `Stop` | Stop speech recognition | Tooltip/message used while recognition is active (clicking stops it). |
+| `Unsupported` | Speech recognition is not supported in this browser | Message shown when the current browser/environment does not support required speech features. |
+| `NotInitialized` | Speech recognition engine not initialized | Message shown before the underlying speech engine is ready. |
+
+## Next Steps
+
+- [Enums]({%slug speechtotextbutton/server-side-programming/enums%})
diff --git a/docs-builder.yml b/docs-builder.yml
index 081df55a1..f4c5e4c8f 100644
--- a/docs-builder.yml
+++ b/docs-builder.yml
@@ -1698,6 +1698,9 @@ meta:
controls/badge:
title: Badge
position: 1
+ controls/speechtotextbutton:
+ title: SpeechToTextButton
+ position: 1
api/server:
title: Server-side
position: 2
diff --git a/introduction.md b/introduction.md
index 5871e3ca8..48e31a9ec 100644
--- a/introduction.md
+++ b/introduction.md
@@ -152,6 +152,7 @@ The following table lists all available Telerik UI for ASP.NET AJAX components.
+