I am trying to understand if there are ways to do this.
Yes. An offline device can create transactions as long as it knows about the funds it can spend and has the corresponding private key. Once it's signed, the transaction cannot be changed without invalidating it. Most transactions are fairly small, usually less than 1 kB, but any standard transaction will not exceed 100 kB.
You basically just need to find a way to get it to anyone else with internet access. You could e.g.:
- put it on a USB stick, and carry it to a computer with internet
- print it on a QR-code, have someone with internet scan and submit it
- send it via SMS
- send it via ham radio
You can even synchronize an offline computer: there is a satellite that streams the blockchain. So if you have a satellite kit linked up to your computer, you can keep your node synchronized with the network without internet.
Seems nitpicky, but I'm going to distinguish between
- the Signing wallet client,
which can be fully "cold", offline and from a security POV should be air-gapped e.g. a hardware wallet, since it was likely exposed to the original seed, and certainly holds the private keys, and
- the Broadcast wallet client,
which by definition needs to be "hot" or Online in order to communicate the signed transactions out onto the peer-to-peer BTC network of participating nodes.
Now, you may be running your own full node instance, but your signed raw transaction is not really "broadcast" in any sense, until it has reached many nodes around the internet, until it gets incorporated into a block.
The mode of transportation of that transaction data string between those two wallet-clients may be via data storage device, USB or SD card. It may use a QR code, which is probably most secure, or a Bluetooth or NFC channel, or indeed satellite, ham radio or SMS, but that data getting put out to the peer-to-peer Bitcoin node network requires connecting to the internet—that is from a practical POV intrinsic to the definition of the broadcasting step.