Con JavaScript, ¿puede realmente crear un cuadro de alerta o diálogo desde cero sin depender del navegador?

No, es imposible en los navegadores modernos.

Alert / dialog es una ventana de escritorio que tiene un escritorio (ventana raíz en términos de GUI) como propietario. La ventana de diálogo se coloca fuera del lienzo HTML / CSS: puede superar los límites de la ventana que aloja contenido (ventana de pestañas en los navegadores). Ese es el primer problema.

El segundo problema es que la alerta / diálogo se muestra en el llamado bucle modal: cuando llama a alert (), la ejecución del script actual se bloquea hasta que el usuario cierre el diálogo de alerta (por ejemplo, haciendo clic en el botón Aceptar). Los navegadores modernos no exponen dichos bucles síncronos a los scripts del usuario, solo el envío de eventos asíncronos.

Y el tercero.
Los sistemas operativos modernos tienen efectos y comportamientos especiales de IU para atraer la atención del usuario al diálogo. Por ejemplo, el título de la ventana parpadeante en la barra de tareas en MS Windows, etc.

Eso no significa que no pueda tener diálogos modales reales definidos por HTML / CSS. Solo necesita usar no un navegador, sino otros entornos que reproducen HTML / CSS y tienen soporte para bucles modales.

Por ejemplo, mi sciter: motor de interfaz de usuario HTML / CSS. Aquí hay ejemplos de diálogos definidos en HTML / CSS:

Sciter es un motor HTML / CSS incorporable diseñado específicamente para la interfaz de usuario de las aplicaciones de escritorio y es imprescindible la capacidad de ejecutar una función de interfaz de usuario básica como los diálogos modales.

JavaScript es un lenguaje de secuencias de comandos que debe ejecutar el navegador (en el contexto de su pregunta. Puede hacer otras cosas fuera del navegador). Por lo tanto, no, JavaScript se puede usar para indicarle al navegador que muestre un mensaje de alerta, pero si el navegador no lo desea, o si el usuario deshabilita las alertas, no puede forzarlo. JavaScript es realmente solo un conjunto de instrucciones para que su navegador las siga.

Si está utilizando alertas de JavaScript. El aspecto y la sensación no serán consistentes. En Chrome, se ve diferente en comparación con Edge o Internet Explorer . Sin embargo, puede usar los cuadros de alerta de JQuery . Los cuadros de alerta de JQuery hacen que la interfaz de usuario sea coherente en el navegador.

Si está utilizando un marco como Angular JS, puede usar ngDialog, que es muy potente y puede personalizarlo fácilmente.

Sí. La mayoría de los marcos frontend como bootstrap, semanticUI ya incluyen esto o algo similar en sus bibliotecas. Crear cuadros de diálogo es más fácil de lo que piensas, incluso sin ellos.