Recherche avancée

Médias (0)

Mot : - Tags -/upload

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (58)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5056)

  • "FFmpeg : Error not transitioning to the next song in Discord Bot's queue."

    1er avril 2024, par noober

    I have 3 modules, but I'm sure the error occurs within this module, and here is the entire code within that module :

    


    import asyncio
import discord
from discord import FFmpegOpusAudio, Embed
import os

async def handle_help(message):
    embed = discord.Embed(
        title="Danh sách lệnh cho Bé Mèo",
        description="Dưới đây là các lệnh mà chủ nhân có thể bắt Bé Mèo phục vụ:",
        color=discord.Color.blue()
    )
    embed.add_field(name="!play", value="Phát một bài hát từ YouTube.", inline=False)
    embed.add_field(name="!pause", value="Tạm dừng bài hát đang phát.", inline=False)
    embed.add_field(name="!resume", value="Tiếp tục bài hát đang bị tạm dừng.", inline=False)
    embed.add_field(name="!skip", value="Chuyển đến bài hát tiếp theo trong danh sách chờ.", inline=False)
    embed.add_field(name="!stop", value="Dừng phát nhạc và cho phép Bé Mèo đi ngủ tiếp.", inline=False)
    # Thêm các lệnh khác theo cùng mẫu trên
    await message.channel.send(embed=embed)

class Song:
    def __init__(self, title, player):
        self.title = title  # Lưu trữ tiêu đề bài hát ở đây
        self.player = player

# Thêm đối tượng Song vào hàng đợi
def add_song_to_queue(guild_id, queues, song):
    queues.setdefault(guild_id, []).append(song)

async def handle_list(message, queues):
    log_file_path = "C:\\Bot Music 2\\song_log.txt"
    if os.path.exists(log_file_path):
        with open(log_file_path, "r", encoding="utf-8") as f:
            song_list = f.readlines()

        if song_list:
            embed = discord.Embed(
                title="Danh sách bài hát",
                description="Danh sách các bài hát đã phát:",
                color=discord.Color.blue()
            )

            for i, song in enumerate(song_list, start=1):
                if i == 1:
                    song = "- Đang phát: " + song.strip()
                embed.add_field(name=f"Bài hát {i}", value=song, inline=False)

            await message.channel.send(embed=embed)
        else:
            await message.channel.send("Hiện không có dữ liệu trong file log.")
    else:
        await message.channel.send("File log không tồn tại.")

async def handle_commands(message, client, queues, voice_clients, yt_dl_options, ytdl, ffmpeg_options=None, guild_id=None, data=None):
    # Nếu không có ffmpeg_options, sử dụng các thiết lập mặc định
    if ffmpeg_options is None:
        ffmpeg_options = {
            'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
            'options': '-vn -filter:a "volume=0.25"'
        }
    
    # Khởi tạo voice_client
    if guild_id is None:
        guild_id = message.guild.id

    if guild_id in voice_clients:
        voice_client = voice_clients[guild_id]
    else:
        voice_client = None

    # Xử lý lệnh !play
    if message.content.startswith("!play"):
        try:
            # Kiểm tra xem người gửi tin nhắn có đang ở trong kênh voice không
            voice_channel = message.author.voice.channel
            # Kiểm tra xem bot có đang ở trong kênh voice của guild không
            if voice_client and voice_client.is_connected():
                await voice_client.move_to(voice_channel)
            else:
                voice_client = await voice_channel.connect()
                voice_clients[guild_id] = voice_client
        except Exception as e:
            print(e)

        try:
            query = ' '.join(message.content.split()[1:])
            if query.startswith('http'):
                url = query
            else:
                query = 'ytsearch:' + query
                loop = asyncio.get_event_loop()
                data = await loop.run_in_executor(None, lambda: ytdl.extract_info(query, download=False))
                if not data:
                    raise ValueError("Không có dữ liệu trả về từ YouTube.")
                url = data['entries'][0]['url']

            player = FFmpegOpusAudio(url, **ffmpeg_options)
            # Lấy thông tin của bài hát mới đang được yêu cầu
            title = data['entries'][0]['title']
            duration = data['entries'][0]['duration']
            creator = data['entries'][0]['creator'] if 'creator' in data['entries'][0] else "Unknown"
            requester = message.author.nick if message.author.nick else message.author.name
                    
            # Tạo embed để thông báo thông tin bài hát mới
            embed = discord.Embed(
                title="Thông tin bài hát mới",
                description=f"**Bài hát:** *{title}*\n**Thời lượng:** *{duration}*\n**Tác giả:** *{creator}*\n**Người yêu cầu:** *{requester}*",
                color=discord.Color.green()
            )
            await message.channel.send(embed=embed)
            
            # Sau khi lấy thông tin của bài hát diễn ra, gọi hàm log_song_title với title của bài hát
            # Ví dụ:
            title = data['entries'][0]['title']
            await log_song_title(title)

            # Thêm vào danh sách chờ nếu có bài hát đang phát
            if voice_client.is_playing():
                queues.setdefault(guild_id, []).append(player)
            else:
                voice_client.play(player)
                
        except Exception as e:
            print(e)
            
    if message.content.startswith("!link"):
            try:
                voice_client = await message.author.voice.channel.connect()
                voice_clients[voice_client.guild.id] = voice_client
            except Exception as e:
                print(e)

            try:
                url = message.content.split()[1]

                loop = asyncio.get_event_loop()
                data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=False))

                song = data['url']
                player = discord.FFmpegOpusAudio(song, **ffmpeg_options)

                voice_clients[message.guild.id].play(player)
            except Exception as e:
                print(e)

    # Xử lý lệnh !queue
    elif message.content.startswith("!queue"):
        queue = queues.get(guild_id, [])
        if queue:
            await message.channel.send("Danh sách chờ:")
            for index, item in enumerate(queue, 1):
                await message.channel.send(f"{index}. {item.title}")
        else:
            await message.channel.send("Không có bài hát nào trong danh sách chờ.")

    # Xử lý lệnh !skip
    elif message.content.startswith("!skip"):
        try:
            if voice_client and voice_client.is_playing():
                voice_client.stop()
                await play_next_song(guild_id, queues, voice_client, skip=True)
                await remove_first_line_from_log()
        except Exception as e:
            print(e)

    # Xử lý các lệnh như !pause, !resume, !stop
    elif message.content.startswith("!pause"):
        try:
            if voice_client and voice_client.is_playing():
                voice_client.pause()
        except Exception as e:
            print(e)

    elif message.content.startswith("!resume"):
        try:
            if voice_client and not voice_client.is_playing():
                voice_client.resume()
        except Exception as e:
            print(e)

    elif message.content.startswith("!stop"):
        try:
            if voice_client:
                voice_client.stop()
                await voice_client.disconnect()
                del voice_clients[guild_id]  # Xóa voice_client sau khi dừng
        except Exception as e:
            print(e)

async def log_song_title(title):
    log_file_path = "C:\\Bot Music 2\\song_log.txt"
    try:
        # Kiểm tra xem tệp tin log đã tồn tại chưa
        if not os.path.exists(log_file_path):
            # Nếu chưa tồn tại, tạo tệp tin mới và ghi title vào tệp tin đó
            with open(log_file_path, 'w', encoding='utf-8') as file:
                file.write(title + '\n')
        else:
            # Nếu tệp tin log đã tồn tại, mở tệp tin và chèn title vào cuối tệp tin
            with open(log_file_path, 'a', encoding='utf-8') as file:
                file.write(title + '\n')
    except Exception as e:
        print(f"Error logging song title: {e}")

async def remove_first_line_from_log():
    log_file_path = "C:\\Bot Music 2\\song_log.txt"
    try:
        with open(log_file_path, "r", encoding="utf-8") as f:
            lines = f.readlines()
        # Xóa dòng đầu tiên trong list lines
        lines = lines[1:]
        with open(log_file_path, "w", encoding="utf-8") as f:
            for line in lines:
                f.write(line)
    except Exception as e:
        print(f"Error removing first line from log: {e}")
        
async def clear_log_file():
    log_file_path = "C:\\Bot Music 2\\song_log.txt"
    try:
        with open(log_file_path, "w", encoding="utf-8") as f:
            f.truncate(0)
    except Exception as e:
        print(f"Error clearing log file: {e}")


async def play_next_song(guild_id, queues, voice_client, skip=False):
    queue = queues.get(guild_id, [])
    if queue:
        player = queue.pop(0)
        voice_client.play(player, after=lambda e: asyncio.run_coroutine_threadsafe(play_next_song(guild_id, queues, voice_client, skip=False), voice_client.loop))
        if skip:
            return
        else:
            await remove_first_line_from_log()  # Xóa dòng đầu tiên trong file log
    elif skip:
        await remove_first_line_from_log()  # Xóa dòng đầu tiên trong file log
        await voice_client.disconnect()
        del voice_client[guild_id]  # Xóa voice_client sau khi dừng
    else:
        await clear_log_file()  # Xóa dòng đầu tiên trong file log
        await voice_client.disconnect()
        del voice_client[guild_id]  # Xóa voice_client sau khi dừng


    


    I have tried asking ChatGPT, Gemini, or Bing, and they always lead me into a loop of errors that cannot be resolved. This error only occurs when the song naturally finishes playing due to its duration. If the song is playing and I use the command !skip, the next song in the queue will play and function normally. I noticed that it seems like if a song ends naturally, the song queue is also cleared immediately. I hope someone can help me with this

    


  • How (and Why) to Run a Web Accessibility Audit in 2024

    7 mai 2024, par Erin

    When most businesses design their websites, they primarily think about aesthetics, not accessibility. However, not everyone who visits your website has the same abilities or access needs. Eight percent of the US population has visual impairments.

    The last thing you want is to alienate website visitors with a bad experience because your site isn’t up to accessibility standards. (And with growing international regulation, risk fines or lawsuits as a result.)

    A web accessibility audit can help you identify and fix any issues for users with impaired vision, hearing or other physical disabilities. In this article, we’ll cover how to conduct such an audit efficiently for your website in 2024.

    What is a web accessibility audit ?

    A web accessibility audit is a way to evaluate the usability of your website for users with visual, auditory or physical impairments, as well as cognitive disabilities or neurological issues. The goal is to figure out how accessible your website is to each of these affected groups and solve any issues that come up.

    To complete an audit, you use digital tools and various manual accessibility testing processes to ensure your site meets modern web accessibility standards.

    Why is a web accessibility audit a must in 2024 ?

    For far too long, many businesses have not considered the experiences of those with disabilities. The growing frustrations of affected internet users have led to a new focus on web accessibility laws and enforcement.

    Lawsuits related to the ADA (Americans with Disabilities Act) reached all-time highs in 2023 — over 4,500 digital-related lawsuits were filed. The EU has also drawn up the European Accessibility Act (EAC), which goes into effect in June 2025.

    But at the end of the day, it’s not about accessibility legislation. It’s about doing right by people.

    Illustration of a sight-impaired person using text-to-speech to browse a website on a smartphone

    This video by voice actor, YouTuber, and surfer Pete Gustin demonstrates why accessibility measures are so important. If buttons, navigation and content sections aren’t properly labelled, sight-impaired people who rely on speech-to-text to browse the web can’t comfortably interact with your site.

    And you’re worse off for it. You can lose some of your best customers and advocates this way. 

    With stronger enforcement of accessibility regulations in the US and new regulations coming into effect in the EU in 2025, the time to act is now. It’s not enough to “keep accessibility in mind” — you must take concrete steps to improve it.

    Who should lead a web accessibility audit ?

    Ideally, you want to hire a third-party web accessibility expert to lead the audit. They can guide you through multiple stages of manual accessibility testing to ensure your site meets regulations and user needs. 

    Experienced accessibility auditors are familiar with common pitfalls and can help you avoid them. They ensure you meet the legal requirements with proper solutions, not quick fixes.

    If this isn’t an option, find someone with relevant experience within your company. And involve someone with “skin in the game” in the process. Hire someone with visual impairments to usability test your site. Don’t just do automated tests or “put yourself in their shoes.” Make sure the affected users can use your site without issues.

    Automated vs. manual audits and the danger of shortcuts

    While there are automated audits, they only check for the bare minimum :

    • Do your images have alt tags ? (They don’t check if the alt tag is descriptive or just SEO junk text.)
    • Are clickable buttons identified with text for visually impaired users ?
    • Is your text size adjustable ?
    • Are your background and foreground colours accessible for colour-blind users ? Is there a sufficient contrast ratio ?
    Illustration of the results of an automated accessibility test

    They don’t dive into the user journey (and typically can’t access login-locked parts of your site). They can be a good starting point, but it’s a bad idea to rely completely on automated audits.

    They’ll miss more complex issues like :

    • Dynamic content and animated elements or videos that could put people with epilepsy at risk of seizures
    • A navigational flow that is unnecessarily challenging for users with impairments
    • Video elements without proper captions

    So, don’t rely too much on automated tests and audits. Many lawsuits for ADA infractions are against companies that think they’ve already solved the problem. For example, 30% of 2023 lawsuits were against sites that used accessibility overlays.

    Key elements of the Web Content Accessibility Guidelines (WCAG)

    The international standard for web accessibility is the Web Content Accessibility Guidelines (WCAG). In the most recent version, WCAG 2.2, there are new requirements for visual elements and focus and other updates.

    Here’s a quick overview of the key priorities of WCAG :

    Diagram of core WCAG considerations like text scalability, colour choices, accessible navigation, and more

    Perceivable : Any user can read or listen to your site’s content

    The first priority is for any user to be able to perceive the actual content on your site. To be compliant, you need to make these adjustments and more :

    • Use text that scales with browser settings.
    • Avoid relying on colour contrasts to communicate something.
    • Ensure visual elements are explained in text.
    • Offer audio alternatives for things like CAPTCHA.
    • Form fields and interactive elements are properly named.

    Operable : Any user can navigate the site and complete tasks without issue

    The second priority is for users to navigate your website and complete tasks. Here are some of the main considerations for this section :

    • Navigation is possible through keyboard and text-to-speech interfaces.
    • You offer navigation tools to bypass repeated blocks of content.
    • Buttons are properly titled and named.
    • You give impaired users enough time to finish processes without timing out.
    • You allow users to turn off unnecessary animations (and ensure none include three flashes or more within one second).
    • Links have a clear purpose from their alt text (and context).

    Understandable : Any user can read and understand the content

    The third priority is making the content understandable. You need to communicate as simply and as clearly as possible. Here are a few key points :

    • Software can determine the default language of each page.
    • You use a consistent method to explain jargon or difficult terms.
    • You introduce the meaning of unfamiliar abbreviations and acronyms.
    • You offer tools to help users double-check and correct input.
    • The reading grade is not higher than grade 9. If it is, you must offer an alternative text with a lower grade.
    • Use consistent and predictable formatting and navigation.

    This intro to accessibility guidelines should help you see the wide range of potential accessibility issues. Accessibility is not just about screen readers — it’s about ensuring a good user experience for users with a wide range of disabilities.

    Note : If you’re not hiring a third-party expert for the manual accessibility audit, this introduction isn’t enough. You need to familiarise yourself with all 50 success criteria in WCAG 2.2.

    How to do your first web accessibility audit

    Ready to find and fix the accessibility issues across your website ? Follow the steps outlined below to do a successful accessibility audit.

    Start with an automated accessibility test

    To point you in the right direction, start with a digital accessibility checker. There are many free alternatives, including :

    • Accessibility Checker
    • Silktide accessibility checker
    • AAArdvark

    When choosing a tool, check it’s up-to-date with the newest accessibility guidelines. Many accessibility evaluation tools are still based on the WCAG 2.1 version rather than WCAG 2.2.

    The tool will give you a basic evaluation of the accessibility level of your site. A free report can quickly identify common issues with navigation, labelling, colour choices and more. 

    But this is only good as a starting point. Remember that even paid versions of these testing tools are limited and cannot replace a manual audit.

    Look for common issues

    The next step is to manually look for common issues that impact your site’s level of accessibility :

    • Undescriptive alt text
    • Colour combinations (and lack of ability to change background and foreground colours)
    • Unscalable text
    • Different site content sections that are not properly labelled

    The software you use to create your site can lead to many of these issues. Is your content management system (CMS) compliant with ADA or WCAG ? If not, you may want to move to a CMS before continuing the audit.

    Pinpoint customer journeys and test them for accessibility 

    After you’ve fixed common issues, it’s essential to put the actual customer journey to the test. Explore your most important journeys with behavioural analytics tools like session recordings and funnel analysis.

    Analysing funnel reports lets you quickly identify each page that usually contributes to a sale. You will also have an overview of the most popular funnels to evaluate for accessibility.

    If your current web analytics platform doesn’t offer behavioural reports like these, Matomo can help. Our privacy-friendly web analytics solution includes funnel reports, session recordings, A/B testing, form analytics, heatmaps and more.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    If you don’t have the budget to test every page individually, this is the perfect place to start. You want to ensure that users with disabilities have no issues completing the main tasks on your site. 

    Don’t focus solely on your web pages 

    Accessibility barriers can also exist outside of your standard web pages. So ensure that other file formats like PDFs and videos are also accessible. 

    Remember that downloadable materials are also part of your digital experience. Always consider the needs of individuals with disabilities when accessing things like case studies or video tutorials. 

    Highlight high-priority issues in a detailed report

    To complete the audit, you need to summarise and highlight high-priority issues. In a larger company, this will be in the form of a report. W3’s Web Accessibility Initiative offers a free accessibility report template and an online tool to generate a report.

    For smaller teams, it may make sense to input issues directly into the product backlog or a task list. Then, you can tackle the issues, starting with high-priority pages identified earlier in this process.

    Avoid quick fixes and focus on sustainable improvement

    As mentioned, AI-powered overlay solutions aren’t compliant and put you at risk for lawsuits. It’s not enough to install a quick accessibility tool and pat yourself on the back.

    And it’s not just about accessibility compliance. These solutions provide a disjointed experience that alienates potential users. 

    The point of a digital accessibility audit is to identify issues and provide a better experience to all your users. So don’t try to cut corners. Do the work required to implement solutions that work seamlessly for everyone. Invest in a long-term accessibility remediation process.

    Deliver a frictionless experience while gaining insight into your users

    An accessibility audit is crucial to ensure an inclusive experience — that a wide variety of users can read and interact with your site.

    But what about the basic usability of your website ? Are you sure the experience is without friction ? Matomo’s behavioural analytics tools can show how users interact with your website.

    For example, heatmaps can show you where users are clicking — which can help you identify a pattern, like many users mistaking a visual element for a button.

    Plus, our privacy-friendly web analytics are compliant with GDPR, CCPA and other data privacy regulations. That helps protect you against privacy-related lawsuits, just as an accessibility audit protects you against ADA lawsuits.

    And it never hurts that your users know you respect their privacy. Try Matomo free for 21-days. No credit card required.

  • OCPA, FDBR and TDPSA – What you need to know about the US’s new privacy laws

    22 juillet 2024, par Daniel Crough

    On July 1, 2024, new privacy laws took effect in Florida, Oregon, and Texas. People in these states now have more control over their personal data, signaling a shift in privacy policy in the United States. Here’s what you need to know about these laws and how privacy-focused analytics can help your business stay compliant.

    Consumer rights are front and centre across all three laws

    The Florida Digital Bill of Rights (FDBR), Oregon Consumer Privacy Act (OCPA), and Texas Data Privacy and Security Act (TDPSA) grant consumers similar rights.

    Access : Consumers can access their personal data held by businesses.

    Correction : Consumers can correct inaccurate data.

    Deletion : Consumers may request data deletion.

    Opt-Out : Consumers can opt-out of the sale of their personal data and targeted advertising.

    Oregon Consumer Privacy Act (OCPA)

    The Oregon Consumer Privacy Act (OCPA), signed into law on June 23, 2023, and effective as of July 1, 2024, grants Oregonians new rights regarding their personal data and imposes obligations on businesses. Starting July 1, 2025, authorities will enforce provisions that require data protection assessments, and businesses must recognize universal opt-out mechanisms by January 1, 2026. In Oregon, the OCPA applies to business that :

    • Either conduct business in Oregon or offer products and services to Oregon residents

    • Control or process the personal data of 100,000 consumers or more, or

    • Control or process the data of 25,000 or more consumers while receiving over 25% of their gross revenues from selling personal data.

    Exemptions include public bodies like state and local governments, financial institutions, and insurers that operate under specific financial regulations. The law also excludes protected health information covered by HIPAA and other specific federal regulations.

    Business obligations

    Data Protection Assessments : Businesses must conduct data protection assessments for high-risk processing activities, such as those involving sensitive data or targeting children.

    Consent for Sensitive Data : Businesses must secure explicit consent before collecting, processing, or selling sensitive personal data, such as racial or ethnic origin, religious beliefs, health information, biometric data, and geolocation.

    Universal Opt-out : Starting January 1, 2025, businesses must acknowledge universal opt-out mechanisms, like the Global Privacy Control, that allow consumers to opt out of data collection and processing activities.

    Enforcement

    The Oregon Attorney General can issue fines up to $7,500 per violation. There is no private right of action.

    Unique characteristics of the OCPA

    The OCPA differs from other state privacy laws by requiring affirmative opt-in consent for processing sensitive and children’s data, and by including nonprofit organisations under its scope. It also requires global browser opt-out mechanisms starting in 2026.

    Florida Digital Bill of Rights (FDBR)

    The Florida Digital Bill of Rights (FDBR) became law on June 6, 2023, and it came into effect on July 1, 2024. This law targets businesses with substantial operations or revenues tied to digital activities and seeks to protect the personal data of Florida residents by granting them greater control over their information and imposing stricter obligations on businesses. It applies to entities that :

    • Conduct business in Florida or provide products or services targeting Florida residents,

    • Have annual global gross revenues exceeding $1 billion,

    • Receive 50% or more of their revenues from digital advertising or operate significant digital platforms such as app stores or smart speakers with virtual assistants.

    Exemptions include governmental entities, nonprofits, financial institutions covered by the Gramm-Leach-Bliley Act, and entities covered by HIPAA.

    Business obligations

    Data Security Measures : Companies are required to implement reasonable data security measures to protect personal data from unauthorised access and breaches.

    Handling Sensitive Data : Explicit consent is required for processing sensitive data, which includes information like racial or ethnic origin, religious beliefs, and biometric data.

    Non-Discrimination : Entities must ensure they do not discriminate against consumers who exercise their privacy rights.

    Data Minimisation : Businesses must collect only necessary data.

    Vendor Management : Businesses must ensure that their processors and vendors also comply with the FDBR, regarding the secure handling and processing of personal data.

    Enforcement

    The Florida Attorney General can impose fines of up to $50,000 per violation, with higher penalties for intentional breaches.

    Unique characteristics of the FDBR

    Unlike broader privacy laws such as the California Consumer Privacy Act (CCPA), which apply to a wider range of businesses based on lower revenue thresholds and the volume of data processed, the FDBR distinguishes itself by targeting large-scale businesses with substantial revenues from digital advertising. The FDBR also emphasises specific consumer rights related to modern digital interactions, reflecting the evolving landscape of online privacy concerns.

    Texas Data Privacy and Security Act (TDPSA)

    The Texas Data Privacy and Security Act (TDPSA), signed into law on June 16, 2023, and effective as of July 1, 2024, enhances data protection for Texas residents. The TDPSA applies to entities that :

    • Conduct business in Texas or offer products or services to Texas residents.

    • Engage in processing or selling personal data.

    • Do not fall under the classification of small businesses according to the U.S. Small Business Administration’s criteria, which usually involve employee numbers or average annual receipts. 

    The law excludes state agencies, political subdivisions, financial institutions compliant with the Gramm-Leach-Bliley Act, and entities compliant with HIPAA.

    Business obligations

    Data Protection Assessments : Businesses must conduct data protection assessments for processing activities that pose a heightened risk of harm to consumers, such as processing for targeted advertising, selling personal data, or profiling.

    Consent for Sensitive Data : Businesses must get explicit consent before collecting, processing, or selling sensitive personal data, such as racial or ethnic origin, religious beliefs, health information, biometric data, and geolocation.

    Companies must have adequate data security practices based on the personal information they handle.

    Data Subject Access Requests (DSARs) : Businesses must respond to consumer requests regarding their personal data (e.g., access, correction, deletion) without undue delay, but no later than 45 days after receipt of the request.

    Sale of Data : If businesses sell personal data, they must disclose these practices to consumers and provide them with an option to opt out.

    Universal Opt-Out Compliance : Starting January 1, 2025, businesses must recognise universal opt-out mechanisms like the Global Privacy Control, enabling consumers to opt out of data collection and processing activities.

    Enforcement

    The Texas Attorney General can impose fines up to $25,000 per violation. There is no private right of action.

    Unique characteristics of the TDPSA

    The TDPSA stands out for its small business carve-out, lack of specific thresholds based on revenue or data volume, and requirements for recognising universal opt-out mechanisms starting in 2025. It also mandates consent for processing sensitive data and includes specific measures for data protection assessments and privacy notices.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Privacy notices across Florida, Oregon, and Texas

    All three laws include a mandate for privacy notices, though there are subtle variations in their specific requirements. Here’s a breakdown of these differences :

    FDBR privacy notice requirements

    Clarity : Privacy notices must clearly explain the collection and use of personal data.

    Disclosure : Notices must inform consumers about their rights, including the right to access, correct, delete their data, and opt-out of data sales and targeted advertising.

    Specificity : Businesses must disclose if they sell personal data or use it for targeted advertising.

    Security Practices : The notice should describe the data security measures in place.

    OCPA privacy notice requirements

    Comprehensive Information : Notices must provide information about the personal data collected, the purposes for processing, and any third parties that can access it.

    Consumer Rights : Must plainly outline consumers’ rights to access, correct, delete their data, and opt-out of data sales, targeted advertising, and profiling.

    Sensitive Data : To process sensitive data, businesses or entities must get explicit consent and communicate it.

    Universal Opt-Out : Starting January 1, 2026, businesses must recognise and honour universal opt-out mechanisms.

    TDPSA privacy notice requirements

    Detailed Notices : Must provide clear and detailed information about data collection practices, including the data collected and the purposes for its use.

    Consumer Rights : Must inform consumers of their rights to access, correct, delete their data, and opt-out of data sales and targeted advertising.

    High-Risk Processing : Notices should include information about any high-risk processing activities and the safeguards in place.

    Sensitive Data : To process sensitive data, entities and businesses must get explicit consent.

    What these laws mean for your businesses

    Businesses operating in Florida, Oregon, and Texas must now comply with these new data privacy laws. Here’s what you can do to avoid fines :

    1. Understand the Laws : Familiarise yourself with the specific requirements of the FDBR, OCPA, and TDPSA, including consumer rights and business obligations.

    1. Implement Data Protection Measures : Ensure you have robust data security measures in place. This includes conducting regular data protection assessments, especially for high-risk processing activities.

    1. Update Privacy Policies : Provide clear and comprehensive privacy notices that inform consumers about their rights and how their data is processed.

    1. Obtain Explicit Consent : For sensitive data, make sure you get explicit consent from consumers. This includes information like health, race, sexual orientation, and more.

    1. Manage Requests Efficiently : Be prepared to handle requests from consumers to access, correct, delete their data, and opt-out of data sales and targeted advertising within the stipulated timeframes.

    1. Recognise Opt-Out Mechanisms : For Oregon, businesses must be ready to implement and recognise universal opt-out mechanisms by January 1, 2026. In Texas, opt-out enforcement begins in 2026. In Florida, the specific opt-out provisions began on July 1, 2024.

    1. Stay Updated : Keep abreast of any changes or updates to these laws to ensure ongoing compliance. Keep an eye on the Matomo blog or sign up for our newsletter to stay in the know.

    Are we headed towards a more privacy-focused future in the United States ?

    Florida, Oregon, and Texas are joining states like California, Virginia, Colorado, Connecticut, Utah, Iowa, Indiana, Tennessee, and Montana in strengthening consumer privacy protections. This trend could signify a shift in US policy towards a more privacy-focused internet, underlining the importance of consumer data rights and transparent business practices. Even if these laws do not apply to your business, considering updates to your data and privacy policies is wise. Fortunately, there are tools and solutions designed for privacy and compliance to help you navigate these changes.

    Avoid fines and get better data with Matomo

    Most analytics tools don’t prioritize safeguarding user data. At Matomo, we believe everyone has the right to data sovereignty, privacy and amazing analytics. Matomo offers a solution that meets privacy regulations while delivering incredible insights. With Matomo, you get :

    100% Data Ownership : Keep full control over your data, ensuring it is used according to your privacy policies.

    Privacy Protection : Built with privacy in mind, Matomo helps businesses comply with privacy laws.

    Powerful Features : Gain insights with tools like heatmaps, session recordings, and A/B testing.

    Open Source : Matomo’s is open-source and committed to transparency and customisation.

    Flexibility : Choose to host Matomo on your servers or in the cloud for added security.

    No Data Sampling : Ensure accurate and complete insights without data sampling.

    Privacy Compliance : Easily meet GDPR and other requirements, with data stored securely and never sold or shared.

    Disclaimer : This content is provided for informational purposes only and is not intended as legal advice. While we strive to ensure the accuracy and timeliness of the information provided, the laws and regulations surrounding privacy are complex and subject to change. We recommend consulting with a qualified legal professional to address specific legal issues related to your circumstances.