puoi dare una trasparenza al colore di sfondo scrivendo ad esempio background-color: rgba(255, 0, 0, 0.5);
oppure, se lo sfondo è un'immagine, puoi creare due elementi distinti e posizionare la scritta sopra l'immagine, a questo punto puoi dare l'opacità all'immagine senza intaccare la scritta.
ti riporto una piccola pagina html come esempio:
codice HTML:
<html>
<head>
<title>Test</title>
<style type="text/css">
div { position:relative }
img { opacity:0.5; }
span { color:yellow; font-size:40px; font-weight:bold; position:absolute; top:50px; left:50px; }
</style>
</head>
<body>
<div>
<img src="http://images.wired.it/wp-content/uploads/2016/01/1453282239_gatto-9-600x335.jpg" />
<span>TESTO</span>
</div>
</body>
</html>